Share via


.NET Framework 應用程式中的快取

快取可讓您將資料儲存在記憶體中,以進行快速存取。 再次存取資料時,應用程式可從快取取得資料,而不需要從原始來源擷取資料。 這樣可以改善效能和延展性。 此外,當資料來源暫時無法使用時,快取也可讓資料可供使用。

.NET Framework 提供了快取功能,可用來改善 Windows 用戶端與伺服器應用程式 (包括 ASP.NET) 的效能和延展性。

注意事項注意事項

在 .NET Framework 3.5 和之前版本中,ASP.NET 在 System.Web.Caching 命名空間中提供了記憶體中快取實作。舊版 .NET Framework 中,快取僅適用於 System.Web 命名空間,因此需要相依於 ASP.NET 類別。在 .NET Framework 4 中,System.Runtime.Caching 命名空間包含同時為 Web 和非 Web 應用程式所設計的 API。

快取資料

您可以使用 System.Runtime.Caching 命名空間中的類別快取資訊。 這個命名空間中的快取類別提供了下列功能:

  • 抽象型別,可提供建立自訂快取實作的基礎。

  • 具象的記憶體中物件快取實作。

抽象基底快取類別 (ObjectCache) 會定義下列快取工作:

  • 建立與管理快取項目。

  • 指定到期和收回資訊。

  • 觸發為回應快取項目變更所引發的事件。

MemoryCache 類別是 ObjectCache 類別的記憶體中物件快取實作。 您可以將 MemoryCache 類別用於大部分快取工作。

注意事項注意事項

MemoryCache 類別會做為 System.Web.Caching 命名空間中所定義 ASP.NET 快取物件上的模型。因此,內部快取邏輯類似舊版 ASP.NET 中提供的邏輯。

如需如何在 WPF 應用程式中使用快取的範例,請參閱逐步解說:在 WPF 應用程式中快取應用程式資料

在 ASP.NET 應用程式中快取

System.Runtime.Caching 命名空間中的快取類別提供了在 ASP.NET 中快取資料的功能。

注意事項注意事項

如果您的應用程式是以 .NET Framework 3.5 或之前版本為目標,則必須使用 System.Web.Caching 命名空間中定義的快取類別。如需詳細資訊,請參閱 ASP.NET 快取概觀

注意事項注意事項

當您開發新的應用程式時,建議您使用 MemoryCache 類別。System.Runtime.Caching 命名空間中提供的 API 就像是 Cache 命名空間中提供的 API。因此,如果您在舊版 ASP.NET 中使用快取,則 API 將會類似。如需如何在 ASP.NET 應用程式中使用快取的範例,請參閱逐步解說:在 ASP.NET 中快取應用程式資料

輸出快取

若要手動快取應用程式資料,可以使用 ASP.NET 中的 MemoryCache 類別。 ASP.NET 也支援輸出快取,會將網頁、控制項和 HTTP 回應所產生的輸出儲存在記憶體中。 您可以在 ASP.NET 網頁中以宣告方式或是使用 Web.config 檔中的設定來設定輸出快取。 如需詳細資訊,請參閱快取的 outputCache 項目 (ASP.NET 設定結構描述)

ASP.NET 可讓您藉由建立自訂輸出快取提供者的方式擴充輸出快取。 藉由使用自訂提供者,您就可以使用其他儲存裝置儲存快取的內容,例如磁碟、雲端儲存及分散式快取引擎。 若要建立自訂輸出快取提供者,您會建立衍生自 OutputCacheProvider 類別的類別,並且將應用程式設定為使用自訂輸出快取提供者。

在 WCF REST 服務中快取

針對 WCF REST 服務,.NET Framework 可讓您利用 ASP.NET 中提供的宣告式輸出快取。 這樣您就可以快取來自 WCF REST 服務作業的回應。 當使用者傳送 HTTP GET 要求至設為要快取的服務時,ASP.NET 會傳回快取的回應,且不會呼叫服務方法。 快取到期後,下次使用者傳送 HTTP GET 要求時,會呼叫您的服務方法並且再次快取回應。

.NET Framework 還可讓您實作條件式 HTTP GET 快取。 在 REST 案例中,條件式 HTTP GET 要求通常是由服務用來實作智慧型 HTTP 快取,如 HTTP 規格 (英文) 中所述。 如需詳細資訊,請參閱 WCF Web HTTP 服務的快取支援 (英文)。

擴充 .NET Framework 中的快取

.NET Framework 中的快取是專為提供擴充能力所設計。 ObjectCache 類別可讓您建立自訂快取實作。 這個類別提供了可供所有 Managed 應用程式使用的成員,包括 Windows Form、Windows Presentation Foundation (WPF) 和 Windows Communications Foundation (WCF)。 當您想要建立使用不同儲存機制的快取類別,或是更進一步掌控快取作業時,就可能會這樣做。

若要擴充快取,您可以執行下列操作:

如需詳細資訊,請參閱 Scott Guthrie 部落格上的 ASP.NET 4 中的可擴充輸出快取 (VS 2010 和 .NET 4.0 系列) (英文) 一文。

請參閱

工作

逐步解說:在 WPF 應用程式中快取應用程式資料

參考

ObjectCache

MemoryCache

其他資源

逐步解說:在 ASP.NET 中快取應用程式資料