添加 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" }); |
新聞熱點
疑難解答