• 我用ASP.NET缓存之数据缓存


    【我的理解】

    Cache,是内置的对象集合。是全局的,类似于static Arraylist.它是线程安全的,添加或修改Cache中的项目时,不需要锁定或者解除Cache。

    添加 Cache[Key]=object  or Cache.Insert

    移除 Cache.Remove(key)

    【我是怎么用的】

    首先理解缓存策略。可调过期策略 和 绝对过期策略。注意,两则不能同时使用

    使用可调过期策略,需要将absoluteExpiration=DateTime.MaxValue ,TimeSpan .FromMinutes(10)设置项目只有在10分钟内不被使用才会被移除
    Cache.Insert("data", "123", null , DateTime.MaxValue, TimeSpan.FromMinutes(10));
    
    绝对策略,如天气报告,将信息保存60分钟
    Cache.Insert("data", "123", null , DateTime.Now.AddMinutes(60), TimeSpan.Zero);

    缓存依赖。

    即一个缓存的失效依赖另外一个object。这里的object可以指另外一个缓存,或者一个文件,或者....

    类:CacheDependency 命名空间 System.Web.Caching.CacheDependency

    依赖于其它缓存项目
     
    System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency (null, new string [] { "time" });
    Cache.Insert( "number", ++num, cacheDependency);
     
    依赖于文件或文件夹
     
    System.Web.Caching. CacheDependency cacheDependency = new System.Web.Caching.CacheDependency ( "test.xml");
    当test.xml文件删除、更新时自动从缓存中移除
     

    System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency(null, new string[] { "time" });
    Cache.Insert("test", "123", cacheDependency);

     
    移除项目回调
     Cache.Insert("test", "123", null , DateTime.Now.AddSeconds(10), TimeSpan.Zero, new CacheItemUpdateCallback(Test));
     
     
     private void Test(string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration)
        {
     
        }
     

    【源码下载】

     

     

  • 相关阅读:
    浅谈图标布局
    和浏览器异步请求取消相关的那些事
    chrome浏览器的跨域设置——包括版本49前后两种设置
    cordova加载层、进度条、文件选择插件
    js构建ui的统一异常处理方案(四)
    js构建ui的统一异常处理方案(三)
    通过 IntelliJ IDEA 来 Debug Jar包
    JPA使用Specification like查询时特殊字符%和_处理问题 Escape示例
    java8新特性:利用Lambda处理List集合
    让开发部署提速的 IDEA 插件神器攻略(转)
  • 原文地址:https://www.cnblogs.com/ttrjba/p/3509602.html
Copyright © 2020-2023  润新知