• 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();

    }

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    多线程与高并发常见面试题(1)
    LoadRunner 多用户并发 登录,上传数据,登出的脚本教程
    windows cmd 链接远程mysql服务器
    Ubuntu 16.04添加阿里云源
    sqlite 数据库与mysql 数据库使用区别记录
    jdk源码之 hashmap 与hashtable 的区别
    通过构造器启动线程的实现方式及其缺点记录。
    eclipse 中过滤空包,目录树中不显示。
    javascript中正则实现读取当前url中指定参数值方法。
    Reactjs+Webpack+es2015 入门HelloWord(一)
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13758107.html
Copyright © 2020-2023  润新知