系統快取全解析5:檔案快取依賴
這種策略讓快取依賴於一個指定的檔案,通過改變檔案的更新日期來清除快取。
/// /// 獲取當前應用程式指定CacheKey的Cache物件值 /// /// 索引鍵值 /// public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } /// /// 設定以快取依賴的方式快取資料 /// /// 索引鍵值 /// 快取物件 /// 依賴物件 public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert( CacheKey, objObject, dep, System.Web.Caching.Cache.NoAbsoluteExpiration, //從不過期 System.Web.Caching.Cache.NoSlidingExpiration, //禁用可調過期 System.Web.Caching.CacheItemPriority.Default, null); } protected void Page_Load(object sender, EventArgs e) { string CacheKey = "cachetest"; object objModel = GetCache(CacheKey);//從快取中獲取 if (objModel == null) //快取裡沒有 { objModel = DateTime.Now;//把當前時間進行快取 if (objModel != null) { //依賴 C:\\test.txt 檔案的變化來更新快取 System.Web.Caching.CacheDependency dep = newSystem.Web.Caching.CacheDependency("C:\\test.txt"); SetCache(CacheKey, objModel, dep);//寫入快取 } }
Label1.Text = objModel.ToString(); } |
當我們改變test.txt的內容時,快取會自動更新。這種方式非常適合讀取配置檔案的快取處理。如果配置檔案不變化,就一直讀取快取的資訊,一旦配置發生變化,自動更新同步快取的資料。
這種方式的缺點是,如果快取的資料比較多,相關的依賴檔案比較鬆散,對管理這些依賴檔案有一定的麻煩。對於負載均衡環境下,還需要同時更新多臺Web伺服器下的快取檔案,如果多個Web應用中的快取依賴於同一個共享的檔案,可能會省掉這個麻煩。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608134/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 如何使用yii2的快取依賴特性快取
- FileProvider共享檔案、快取IDE快取
- 分散式系統快取系列一 認識快取分散式快取
- win10系統如何更改系統快取檔案路徑Win10快取
- 解析分散式系統的快取設計分散式快取
- 快取專題:HTML5離線快取與HTTP快取快取HTMLHTTP
- 如何清理Mac系統中殘留的檔案和快取檔案Mac快取
- Laravel 路由快取檔案清理Laravel路由快取
- Spring如何使用三級快取解決迴圈依賴Spring快取
- 【spring原始碼】十、AOP迴圈依賴、三級快取Spring原始碼快取
- 深度解析webpack5持久化快取Web持久化快取
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- win10怎麼清理垃圾與快取_win10清理系統垃圾與快取檔案步驟Win10快取
- 快取穿透、快取擊穿、快取雪崩快取穿透
- 快取穿透、快取雪崩、快取擊穿快取穿透
- Spark RDD詳解 | RDD特性、lineage、快取、checkpoint、依賴關係Spark快取
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- HTTP快取——協商快取(快取驗證)HTTP快取
- win10系統下如何刪除更新快取檔案Win10快取
- 快取穿透 快取雪崩快取穿透
- 5、Spring Boot快取Spring Boot快取
- 快取問題(一) 快取穿透、快取雪崩、快取併發 核心概念快取穿透
- 深入解析 HTTP 快取控制HTTP快取
- 快取穿透、快取擊穿、快取雪崩區別快取穿透
- 簡單的檔案快取函式快取函式
- node 之fs 操作檔案 ? 快取Buffer ?快取
- iOS檔案的高階快取– DDGDataCache_OC 快取庫的高階用法iOS快取
- iOS檔案的高階快取-- DDGDataCache_OC 快取庫的高階用法iOS快取
- 快取問題(四) 快取穿透、快取雪崩、快取併發 解決案例快取穿透
- ServiceWorker 快取與 HTTP 快取快取HTTP
- mybatis快取-二級快取MyBatis快取
- win10系統下自動刪除快取垃圾檔案的方法Win10快取
- MyBatis快取機制(一級快取,二級快取)MyBatis快取
- 分散式系統中有哪些快取?分散式快取
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- Spring 迴圈依賴的三種方式(三級快取解決Set迴圈依賴問題)Spring快取
- WEB 應用快取解析以及使用 Redis 實現分散式快取Web快取Redis分散式