系統快取全解析4:應用程式資料快取
System.Web.Caching 名稱空間提供用於快取伺服器上常用資料的類。此名稱空間包括 Cache 類,該類是一個字典,您可以在其中儲存任意資料物件,如雜湊表和資料集。它還為這些物件提供了失效功能,併為您提供了新增和移除這些物件的方法。您還可以新增依賴於其他檔案或快取項的物件,並在從 Cache 物件中移除物件時執行回撥以通知應用程式。
/// /// 獲取當前應用程式指定CacheKey的Cache物件值 /// /// 索引鍵值 /// public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } /// /// 設定當前應用程式指定CacheKey的Cache物件值 /// /// 索引鍵值 /// 快取物件 public static void SetCache(string CacheKey, object objObject) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject); } /// /// 設定當前應用程式指定CacheKey的Cache物件值 /// /// 索引鍵值 /// 快取物件 /// 絕對過期時間 /// 最後一次訪問所插入物件時與該物件過期時之間的時間間隔 public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration); } protected void Page_Load(object sender, EventArgs e) { string CacheKey = "cachetest"; object objModel = GetCache(CacheKey);//從快取中獲取 if (objModel == null)//快取裡沒有 { objModel = DateTime.Now;//把當前時間進行快取 if (objModel != null) { int CacheTime = 30;//快取時間30秒 SetCache(CacheKey, objModel, DateTime.Now.AddSeconds(CacheTime),TimeSpan.Zero);//寫入快取 } } Label1.Text = objModel.ToString(); } |
以上幾種方法都很好的解決了資料快取的問題,但由一個最大的問題是當資料發生變化了,而快取裡還是過期的資料,只有等快取過期後才會重新獲取最新的資料,這樣的話,很多時候使用者獲取的資料都是和實際資料不一致的過期資料。這同樣給使用者造成了比較大的麻煩,怎麼辦呢?接著往下看。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 系統快取全解析2:頁面輸出快取快取
- 系統快取全解析5:檔案快取依賴快取
- C#系統快取全解析C#快取
- 系統快取全解析3:頁面區域性快取快取
- C# ASP.NET系統快取全解析C#ASP.NET快取
- flutter 獲取應用快取以及清除快取Flutter快取
- WEB 應用快取解析以及使用 Redis 實現分散式快取Web快取Redis分散式
- 系統快取全解析7:第三方分散式快取解決方案 Memcached和Cacheman快取分散式
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- HTML5 應用程式快取HTML快取
- Win10系統如何清理應用商店快取_win10清理應用商店快取的方法Win10快取
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- 全面解析快取應用經典問題快取
- 分散式系統快取系列一 認識快取分散式快取
- 解析分散式系統的快取設計分散式快取
- Windows phone 應用開發[2]-資料快取Windows快取
- PB級資料持久化快取系統——lest持久化快取
- .net資料快取快取
- 【Django】Django快取系統Django快取
- 微信小程式之資料快取微信小程式快取
- 系統架構設計:程式快取和快取服務,如何抉擇?架構快取
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- 微信小程式大型系統架構中應用Redis快取要點微信小程式架構Redis快取
- 快取穿透、快取擊穿、快取雪崩快取穿透
- 快取穿透、快取雪崩、快取擊穿快取穿透
- HTML5 應用程式快取簡介HTML快取
- memcached資料庫快取資料庫快取
- Redis快取php資料Redis快取PHP
- PB快取資料指南快取
- DataTable快取資料操作快取
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- HTTP快取——協商快取(快取驗證)HTTP快取
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- 淺談微信小程式用setStorage和getStorage快取和獲取資料微信小程式快取
- 快取穿透 快取雪崩快取穿透
- win10系統應用商店快取怎麼刪除 win10電腦刪除應用商店快取的方法Win10快取
- Alluxio在多級分散式快取系統中的應用UX分散式快取
- 系統效能提升優先法寶|快取應用實踐快取