緩存API:使用Cache對象
使用Cache對象可以存儲任何可序列化的數據對象基於一個或多個依賴項的組合來控制緩存條目到期的方式這些依賴項可以包括自從某對象被緩存後經過的時間自從某對象上次被訪問後經過的時間對文件或文件夾的更改以及對其他緩存對象的更改在略作處理後還可以包括對數據庫中特定表的更改
在Cache中存儲數據的最簡單的方法就是使用一個鍵為其賦值就像HashTable或Dictionary對象一樣
Cache[key] = value;
這種做法將在緩存中存儲項同時不帶任何依賴項因此它不會到期除非緩存引擎為了給其他緩存數據提供空間而將其刪除要包括特定的緩存依賴項可使用Add()或Insert()方法其中每個方法都有幾個重載Add()和Insert()之間的唯一區別是Add()返回對已緩存對象的引用而Insert()沒有返回值
CacheInsert(key myXMLFileData new System
WebCachingCacheDependency(ServerMapPath(users xml)))
該示例可將文件中的XML數據插入緩存無須在以後請求時從文件讀取CacheDependency的作用是確保緩存在文件更改後立即到期以便可以從文件中提取最新數據重新進行緩存如果緩存的數據來自若干個文件還可以指定一個文件名的數組
CacheInsert(dependentkey myDependentData
new SystemWebCachingCacheDependency(new
string[] {} new string[] {key}))
該示例可插入鍵值為key的第二個數據塊(取決於是否存在第一個數據塊)如果緩存中不存在名為key的鍵或者如果與該鍵相關聯的對象已到期或被更新則dependentkey的緩存條目將到期
CacheInsert(key myTimeSensitiveData
null DateTimeNowAddMinutes() TimeSpanZero)
絕對到期此示例將對受時間影響的數據緩存一分鐘一分鐘過後緩存將到期
CacheInsert(key myFrequentlyAccessedData
null SystemWebCachingCacheNoAbsoluteExpiration
TimeSpan FromMinutes())
動態滾動到期此示例將緩存一些頻繁使用的數據數據將在緩存中一直保留下去除非數據未被引用的時間達到了一分鐘
注意動態滾動到期和絕對到期不能一起使用
總之緩存可以使應用程序的性能得到很大的提高因此在設計應用程序以及對應用程序進行性能測試時應該予以考慮應用程序總會或多或少地受益於緩存當然有些應用程序比其他應用程序更適合使用緩存深刻理解ASPNET提供的緩存選項對於任何ASPNET開發人員來說都至關重要
返回目錄ASPNET項目開發指南
編輯推薦
ASPNET MVC 框架揭秘
ASPNET開發寶典
ASP NET開發培訓視頻教程
From:http://tw.wingwit.com/Article/program/net/201311/15811.html