[翻譯].NET框架中的緩存


.NET框架中的緩存
 
原文地址
 
緩存使得你可以快速的獲取內存中存儲的數據。當再次訪問數據的時候,應用從緩存中獲取數據,而不是從數據的原始源獲取。這么做可以提高性能和擴展性。另外,當數據源臨時不可用的時候,緩存使得數據還是可用的。
 
你可以用.NET提供的緩存功能提高應用的性能和擴展性,緩存功能可以在windows客戶端應用中使用,也可以在ASP.NET這種服務端應用中使用。
 

Note

在.NET Framework3.5和更早的版本中,ASP.NET提供了一個內存緩存的實現,放在System.Web.Caching命名空間下。所以在之前版本的.NET框架中,緩存只能通過System.Web命名空間獲取,因此需要依賴一個ASP.NET類。在.NET Framwork4中,在System.Runtime.Caching命名空間下的緩存接口,Web應用和非Web應用都可以使用。

 
Caching Data
你可以使用System.Runtime.Caching命名空間下的類緩存數據。提供了下面的功能:
提供了一些抽象的類型,你可以繼承這些抽象的類型,實現自己的緩存。
一個具體的實現好的內存緩存。
 
抽象基類提供了下面的功能:
  • 創建並管理緩存。
  • 指定過期和收回。
  • 在緩存信息改變的時候觸發事件。
 
MemoryCache類是一個實現ObjectCache類的內存緩存,你可以用它來完成大部分的工作。
 
MemoryCache類的原型定義在System.Web.Caching空間中的ASP.NET緩存對象,因此,內部的緩存邏輯和早期的ASP.NET提供的緩存邏輯很相似。
 
在ASP.NET應用中使用緩存
使用System.Runtime.Caching中提供的緩存類可以給ASP.NET應用提供緩存功能。
 

Note 

如果你的ASP.NET應用是以.NET 3.5或者更早的版本為基礎,你必須使用System.Web.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,都可用的成員。你可以創建自己的緩存,提供一個不同的存儲機制,或者是你想要更小粒度的控制緩存的操作。
 
可以通過下面的方式實現一個自定義緩存:
 
 

參考文獻

1..NET Baby Steps: Part VII - Caching


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM