ASP.NET缓存 Cache之数据缓存
2018-06-23 22:10:52来源:未知 阅读 ()
添加 Cache[Key]=object or Cache.Insert
移除 Cache.Remove(key)
1、将值直接写入Cache
代码如下 | 复制代码 |
HttpContext.Current.Cache["One"] = "1"; |
使用'绝对过期'方式处理缓存,过期时间为:9999年12月31日 (不推荐使用该方法处理缓存,并且应在适当的时候清空缓存Key)
2、使用Insert(String, Object)插入Cache
代码如下 | 复制代码 |
string cacheKey = "Two"; if(cacheValue == null) HttpContext.Current.Cache.Insert(cacheKey, cacheValue); //显示指定缓存的Key 与 Value |
3、使用Insert(String, Object, CacheDependency, DateTime, TimeSpan)插入Cache
代码如下 | 复制代码 |
string cacheKey = "__cache__students"; DataSet dataSet = this.Cache.Get(cacheKey) as DataSet; if(dataSet == null) //加载XML并填充至DataSet //加入缓存,并设定'绝对过期时间'为5分钟 //绑定DataGrid数据 |
该方法较重要的两个参数为absoluteExpiration及slidingExpiration
absoluteExpiration DateTime类型,代表绝对过期时间
slidingExpiration TimeSpan类型,代表滑动过期时间
absoluteExpiration与slidingExpiration不能同时使用
例如:设定了absoluteExpiration参数时,slidingExpiration必须设定为System.Web.Caching.Cache.NoSlidingExpiration
反之:设定了slidingExpiration参数时,http://www.111cn.net/net/net/56762.htm absoluteExpiration必须设定为System.Web.Caching.Cache.NoAbsoluteExpiration
4、使用Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority,
代码如下 | 复制代码 |
CacheItemRemovedCallback)插入Cache public partial class PriorityAndCallbackDemo : System.Web.UI.Page #region 事件处理 //'添加缓存'按钮 点击事件 处理 if(dataSet == null) //使用 Web.config 作为缓存过期依赖项 //加入缓存,设定优先级为默认级别 //绑定GridView数据 //'移除缓存'按钮 点击事件 处理 #region 私有方法 |
该方法较重要的两个参数为CacheItemPriority及CacheItemRemovedCallback
CacheItemPriority 缓存项优先级,当服务器内存不够时,优先级越高的项越不容易被移除
CacheItemRemovedCallback 该参数为委托类型,当缓存项被移除时所调用,包含Reason参数用于表示缓存项被移除的原因
【我是怎么用的】
首先理解缓存策略。可调过期策略 和 绝对过期策略。注意,两则不能同时使用
使用可调过期策略,需要将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" }); |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于vue的多页面标签功能,对于嵌套router-view缓存的最终无 2020-06-01
- Cookie SameSite属性介绍及其在ASP.NET项目中的应用 2020-03-28
- PS切图工具 2020-02-09
- vue日历/日程提醒/html5本地缓存 2019-09-02
- 前端测试干掉缓存 2019-08-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash