System.Web.Caching.Cache 用於實現 Web 應用程序的緩存。
對於每個應用程序域均創建該類的一個實例,並且只要對應的應用程序域保持活動,該實例便保持有效。有關此類實例的信息通過 HttpContext 對象的 Cache 屬性或 Page 對象的 Cache 屬性來提供。
方法:
- Add
將指定項添加到 Cache 對象,該對象具有依賴項、過期和優先級策略以及一個委託(可用於在從 Cache 移除插入項時通知應用程序)。如果 Cache 中已保存了具有相同 key 參數的項,則對此方法的調用將失敗。若要使用相同的 key 參數改寫現有的 Cache 項,請使用 Insert 方法.
- Insert
向 Cache 對象插入項。使用此方法的某一版本改寫具有相同 key 參數的現有 Cache 項。
- Remove
從應用程序的 Cache 對象移除指定項。
-
Item / Get
提供通過Name找到Value的方法
-----------------------------------------------------------------------------------------------------------------------------------------------
一下是從微軟網上MSDN找到的一篇有關Cache的說明, 內容差不多,但是要更加具體一些:
您可以使用三種不同的技術將項添加到 Cache 對象中。根據應用程序要求的不同,您的選擇可以從簡單到複雜。
如果要利用 Cache 所提供的清理、到期時間和依賴項支持,則必須使用 Cache.Insert 方法或 Cache.Add 方法。
注意 Add 和 Insert 方法具有相同的簽名,但它們之間存在細微的差別。首先,調用 Add 方法返回表示緩存項的對象,而調用 Insert 方法不是。其次,如果您調用這些方法並將已存儲在 Cache 中的某個項添加到 Cache 中,那麼它們的行爲是不同的。Insert 方法替換該項,而 Add 方法失敗。
通過指定其鍵和值將項添加到緩存中
- 通過指定項的鍵和值,您可以像將項添加到字典中一樣將其添加到緩存中。下面的代碼將文本框的當前 Value 屬性添加到
Cache 中。
[Visual Basic] Cache("txt1") = txtName.value [C#] Cache["txt1"] = txtName.value;
通過使用 Insert 方法將項添加到緩存中
- 重載 Insert 方法,允許您定義正在使用的版本的參數的值。例如,若要只添加項的鍵和值,則使用下面的代碼。
[Visual Basic] Cache.Insert("MyData1", connectionString) [C#] Cache.Insert("MyData1", connectionString);
使用 Add 方法將項添加到緩存中
- Add 方法與 Insert 方法具有相同的簽名,但它返回表示您所添加項的對象。
[Visual Basic] Cache.Add("MyData1", connectionString) [C#] Cache.Add("MyData1", connectionString);
這兩種方法都使您能夠在很大程度上控制在 Cache 中保留項的條件。兩種方法都支持使緩存的項依賴於外部文件或目錄、Cache 中的其他鍵或任意一個的數組。將設有依賴項的項添加到 Cache 中將創建 CacheDependency 類的實例,它跟蹤對您定義的依賴項的更改。如果這些依賴項的任何一個發生更改(包括被刪除或移動),則將與該依賴項關聯的項從 Cache 中移除。
將設有依賴項的項添加到緩存中
- 您可以使用 Add 或 Insert 方法中的 dependencies 參數將設有依賴項的項添加到
Cache 中。下面的示例演示使用 Insert 方法將設有依賴項(在 XML 文件上)的項添加到
Cache 中。
[C#] Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml))); [Visual Basic] Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)))
將設有到期策略的項添加到緩存中
- 您可以使用 absoluteExpiration parameter 參數和 slidingExpiration 參數將設有到期策略的項添加到
Cache 中。您可以定義絕對過期時間或彈性過期時間,但不能同時定義兩者。在使用上述參數之一定義到期策略時,必須將另一個參數設置爲零。Cache 類定義了兩個自動執行該操作的字段:NoAbsoluteExpiration 和
NoSlidingExpiration。當定義絕對或彈性過期時間時,只要將適當的參數設置爲其相應的字段值即可。下面的示例使用
Insert 方法將設有兩分鐘絕對到期時間的項添加到 Cache 中。
[C#] Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration); [Visual Basic] Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration)
下面的代碼使用 Insert 方法將設有 30 秒彈性過期時間的項添加到 Cache 中。
[C#] Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30)); [Visual Basic] Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30))
注意 當設置絕對到期時間時,請使用 DateTime 結構。當設置彈性過期時間時,請使用 TimeSpan 結構。另外,如果您創建的彈性過期時間小於零或大於一年,則將引發 ArgumentOutOfRangeException 類。
您還可以使用 Add 或 Insert 方法通過在 CacheItemPriority 枚舉中指定值定義緩存項的相對重要性。當 Web 服務器進行清理以釋放內存時,這些相對優先級會對它有所幫助。Web 服務器會在移除具有較高優先級的項之前先從 Cache 中移除具有較低優先級的項。
將設有優先級設置的項添加到緩存中
- 您可以通過在 Add 或 Insert 方法上使用 priority 參數將設有優先級設置的項添加到
Cache 中。下面的示例使用 Add 方法將 priority 爲
High 的項添加到 Cache 中。
[C#] Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null); [Visual Basic] Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null)
這些方法還允許在項從緩存中移除時,使用 CacheItemRemovedCallback 委託通知應用程序。有關完整的示例,請參見從緩存中刪除項時通知應用程序。