当前位置: 移动技术网 > IT编程>开发语言>.net > 我用ASP.NET缓存之数据缓存

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

2018年04月17日  | 移动技术网IT编程  | 我要评论

本钢女老板张晓芳,丁宁哭张继科心疼,后羿SEO

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)

    {

 

    }

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网