• ASP.NET-缓存Cache


    缓存:一种快速获取数据的技术;

    1,把耗费大量资源或时间获取的数据,存放在一个能够快速获取的地方(缓存区);

    2,这样下次就可以直接在缓存区内快速获取;

    常用于CPU,浏览器,数据库;

    为啥能快取?

    1,存储位置不同,如:本地比服务器快,内存比磁盘快;

    2,不用计算:把上次计算结果直接存放,下一次直接取;

    缓存区的数据设置过期时间:

    1,永不过期:和项目运行周期一致

    2,绝对过期时间(常用):在设置的过期时间前有效,简单粗暴;

    3,滑动过期时间:最后一次访问算起,到设置的过期时间结束,类似session失效机制;

    有效期内的缓存也会被ASP.NET(Framework)或被开发人员(Core)自定义清除:

    因缓存要消耗更多的内存,ASP.NET或开发人员会进行一些调整,当内存消耗很多,进而影响性能时(缓存不一定越多越好),会自动清理缓存(按设置的优先级清理);

    .NET Core不会自动清理,所以需要开发人员自行限制缓存容量;

    MVC中缓存:

    public ActionResult Index()

    {

       string cacheKey="小王";

    //先去缓存中取数据

      IndexModel model=HttpCotext.Cache.Get(cacheKey) as IndexModel;

      if(model==null)

      {

      //从数据库取数据

          model=service.GetBy("小王");

       //添加缓存

         HttpContext.Cache.Add(cacheKey,modle,null,DateTime.MaxValue,new TimeSpan(0,0,5),CacheItemPriority.NotRemovable,

                      (k,v,r)=>{Trace.WriteLine($"cache with key{k} and value{v} is deleted,reason{r}")})

      }//else nothing

     return view();

    }

    OutputCache(页面缓存):

    [OutputCache(

    Duration(缓存多久)=10,

    Location(缓存在哪里)=System.Web.UI.OutputCacheLocation.Any(默认服务器端),

    VaryByParam(根据url参数(id)变化)=''id'',

    )]

    public ActionResult Index()

    {

       return view();

    }

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    golang 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    BITOP operation destkey key [key ...]
    Viscosity for Mac使用创建您的第一个连接的方法
    ubuntu18没有网络连接Network
    go1.14下Go mod使用实践
    Unity 光照系统
    Unity 单例模式
    Unity 回调函数(Callback)
    Unity 基于OnGUI显示实时FPS
    Unity OnGUI 的可视化编辑
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13758107.html
Copyright © 2020-2023  润新知