共用方式為


.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) 定義下列快取工作:

  • 建立和管理快取項目。

  • 指定到期和清除資訊。

  • 觸發事件,以回應快取項目的變更。

類別 MemoryCacheObjectCache 類別的記憶體內部物件快取的實作。 您可以將 類別 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 可讓您建立自定義快取實作。 這個類別提供可供所有受控應用程式使用的成員,包括 Windows Forms、Windows Presentation Foundation (WPF)和 Windows Communications Foundation (WCF)。 若要建立使用不同儲存機制的快取類別,或想要對快取作業進行細微控制,您可以這麼做。

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

如需詳細資訊,請參閱 Scott Guthrie 部落格上的文章:ASP.NET 4(VS 2010 和 .NET Framework 4.0 系列)之可延伸輸出快取

另請參閱