.NET應用框架:快取
阿新 • • 發佈:2019-01-05
原文地址
快取使得你可以快速的獲取記憶體中儲存的資料。當再次訪問資料的時候,應用程式將從快取中獲取資料,而不是從資料的原始源獲取。這樣操作可以提高系統的效能和擴充套件性。此外,當資料來源臨時不可用的時候,快取使得資料還是可用的。
你可以用.NET提供的快取功能提高應用的效能和擴充套件性,快取功能可以在windows客戶端應用中使用,也可以在ASP.NET這種服務端應用中使用。
Caching Data
你可以使用System.Runtime.Caching名稱空間下的類快取資料。提供了下面的功能:
提供了一些抽象的型別,你可以繼承這些抽象的型別,實現自己的快取。
一個具體的實現好的記憶體快取。
抽象基類提供了下面的功能:
如果你是開發一個新的應用,推薦使用MemoryCache類。因為System.Runtime.Caching空間提供的介面和System.Web.Caching空間提供的介面很相似,如果你使用過早期版本的ASP.NET的話,你會感覺很親切。
輸出快取
需要手動快取應用中的資料,你可以在ASP.NET中使用MemoryCache類。ASP.NET也支援輸出快取,在記憶體中儲存已經生成的頁面、控制元件和http響應。你可以在ASP.NET頁面中配置輸出快取,也可以在web.config中配置。
ASP.NET也允許你通過建立自定義輸出快取provider來擴充套件輸出快取。在自定義的provider中,你可以使用其他儲存裝置,例如:磁碟,雲端儲存,分散式快取,來儲存輸出快取的內容。
建立自定義provider,你需要繼承OutputCacheProvider類,並且在web.config中配置使用你自定義的provider。
擴充套件.NET Framework中的快取
.NET Framework中的快取被設計成可擴充套件的。ObjectCache類使得你可以建立自己的快取實現。這個類提供了一些所有託管應用,例如:windows froms,wpf,wcp,都可用的成員。你可以建立自己的快取,提供一個不同的儲存機制,或者是你想要更小粒度的控制快取的操作。
可以通過下面的方式實現一個自定義快取:
Note 在.NET Framework3.5和更早的版本中,ASP.NET提供了一個記憶體快取的實現,放在System.Web.Caching名稱空間下。所以在之前版本的.NET框架中,快取只能通過System.Web名稱空間獲取,因此需要依賴一個ASP.NET類。在.NET Framwork4中,在System.Runtime.Caching名稱空間下的快取介面,Web應用和非Web應用都可以使用。 |
- 建立並管理快取。
- 指定過期和收回。
- 在快取資訊改變的時候觸發事件。
Note 如果你的ASP.NET應用是以.NET 3.5或者更早的版本為基礎,你必須使用System.Web.Caching空間下的快取類。 |
參考文獻