天天看點

.NET架構中的緩存

緩存使得你可以快速的擷取記憶體中存儲的資料。當再次通路資料的時候,應用從緩存中擷取資料,而不是從資料的原始源擷取。這麼做可以提高性能和擴充性。另外,當資料源臨時不可用的時候,緩存使得資料還是可用的。

你可以用.NET提供的緩存功能提高應用的性能和擴充性,緩存功能可以在windows用戶端應用中使用,也可以在ASP.NET這種服務端應用中使用。

<b>Note</b>

在.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中配置。

<a href="http://asp.net-tutorials.com/caching/output-cache/" target="_blank">OutputCache</a>

<a href="http://www.cnblogs.com/ltp/archive/2009/06/30/1514314.html" target="_blank">系統緩存全解析2:頁面輸出緩存</a>

ASP.NET也允許你通過建立自定義輸出緩存provider來擴充輸出緩存。在自定義的provider中,你可以使用其他儲存設備,例如:磁盤,雲存儲,分布式緩存,來存儲輸出緩存的内容。

建立自定義provider,你需要繼承OutputCacheProvider類,并且在web.config中配置使用你自定義的provider。

擴充.NET Framework中的緩存

.NET Framework中的緩存被設計成可擴充的。ObjectCache類使得你可以建立自己的緩存實作。這個類提供了一些所有托管應用,例如:windows froms,wpf,wcp,都可用的成員。你可以建立自己的緩存,提供一個不同的存儲機制,或者是你想要更小粒度的控制緩存的操作。

可以通過下面的方式實作一個自定義緩存:

建立一個繼承ObjectCache的類,提供自定義的緩存實作。

本文轉自 virusswb 51CTO部落格,原文連結:http://blog.51cto.com/virusswb/1096632,如需轉載請自行聯系原作者