我用ASP.NET缓存之数据缓存
添加 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)
{
}
上一篇: Mysql 的按时间段分组查询
下一篇: 患者神志清醒
推荐阅读
-
memcached缓存技术之安装配置php并在CMD下用telnet操作数据
-
数据查询用了memcache缓存,用sql做的键值,分页数据不变解决办法
-
在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入、更新、删除数据
-
在ASP.NET 2.0中操作数据之五十六:使用ObjectDataSource缓存数据
-
在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency
-
在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据
-
在ASP.NET 2.0中操作数据之五十七:在分层架构中缓存数据
-
在ASP.NET 2.0中操作数据之七十四:用Managed Code创建存储过程和用户自定义函数(下部分)
-
在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)
-
《解剖PetShop》之四:PetShop之ASP.NET缓存