zoukankan      html  css  js  c++  java
  • 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();

    }

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    自动化测试框架相关资料下载
    C++白盒测试最佳实践课程,3个免费名额火热申请中,31号前截止申请...
    亿能测试培训中心 下周进入完整自动化测试项目实训阶段
    亿能测试大讲堂
    自动化测试调查问卷送《QTP自动化测试最佳实践》
    8月白盒测试课程
    广州亿能自动化测试沙龙
    8月自动化测试课程
    广州亿能自动化测试沙龙
    史上最强的自动化测试课程7月开设
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13758107.html
Copyright © 2011-2022 走看看