System.Web.Caching学习笔记

  • 存放缓存

     			#region 存放对应缓存
                Cache cache = HttpRuntime.Cache;
                //文件缓存依赖
                cache.Insert("CC", "依赖项测试", new CacheDependency(@"D:\123.txt"));
                //这时候在about.aspx页面添加一行代码,当更改一下D:123.txt时,cache["cc"]会立即被清空
    
    
                //30秒后就到期,立即移除,没商量
                cache.Insert("DD", "绝对过期测试", null, DateTime.Now.AddSeconds(30), System.Web.Caching.Cache.NoSlidingExpiration);
    
    
                //弹性过期时间,当缓存没使用10秒就过期
                cache.Insert("EE", "滑动过期测试", null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10));
    
                //文件权重级别
                cache.Add("FF", "缓存重要级别", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null);
                //在服务器释放系统内存时,具有该优先级级别的缓存项最有可能被从缓存删除。
                //Low = 1,-------------在服务器释放系统内存时,具有该优先级级别的缓存项比分配了 System.Web.Caching.CacheItemPriority.Normal优先级的项更有可能被从缓存删除。
                //BelowNormal = 2,---------------在服务器释放系统内存时,具有该优先级级别的缓存项很有可能被从缓存删除,其被删除的可能性仅次于具有 System.Web.Caching.CacheItemPriority.Low
                //Normal = 3,-------------------缓存项优先级的默认值为 System.Web.Caching.CacheItemPriority.Normal。
                //Default = 3,----------------在服务器释放系统内存时,具有该优先级级别的缓存项被删除的可能性比分配了 System.Web.Caching.CacheItemPriority.Normal优先级的项要小。
                //AboveNormal = 4,-------------在服务器释放系统内存时,具有该优先级级别的缓存项最不可能被从缓存删除。
                //High = 5,-------------------在服务器释放系统内存时,具有该优先级级别的缓存项将不会被自动从缓存删除。但是,具有该优先级级别的项会根据项的绝对到期时间或可调整到期时间与其他项一起被移除
                // NotRemovable = 6,
    
    
                //文件权重级别+Callback
                cache.Add("GG", "缓冲移除通知", null, DateTime.Now.AddSeconds(10), Cache.NoSlidingExpiration, CacheItemPriority.Low, Show);
    
                #endregion
          //回调
            public void Show(string key, object value, CacheItemRemovedReason reason)
            {
                Cache cache = HttpRuntime.Cache;
                Cache.Insert("GG", "缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!缓存被清空啦!");
            }
    
  • 获取缓存

     		  #region 获取对应缓存
                //直接打开本页面,输出缓存依赖项测试
                //当更改D:\123.txt之后,在刷新,输出空,表明该Cache是依赖于D:\123.txt的
                Response.Write(HttpContext.Current.Cache["CC"]);
    
    
                //持续刷新30后,不会再输出  绝对过期测试
                Response.Write(HttpContext.Current.Cache["DD"]);
    
    
                //如果一直不停地刷新,都会继续输出,但是当超过10秒后再刷新,不会再输出   滑动缓存测试
                Response.Write(HttpContext.Current.Cache["EE"]);
    
                //文件权重级别
                Response.Write(HttpRuntime.Cache["FF"]);
    
                //测试回调函数
                Response.Write(HttpRuntime.Cache["GG"]);
    
                #endregion
    
posted @ 2022-01-17 15:00  码农阿亮  阅读(61)  评论(0编辑  收藏  举报