開發 Azure 受管理快取服務
重要
Microsoft 建議使用 Azure Redis 快取的所有新開發。 如需選擇 Azure 快取供應專案的目前檔和指引,請參閱 哪一個 Azure 快取供應專案適合我?
受控快取服務提供一組 API,以新增、更新和移除快取中的專案。 在 Microsoft.ApplicationServer.Caching 命名空間中使用類別和方法,是與快取互動的直接方式。 使用其中一個 ASP.NET 提供者,則是間接使用快取的方式。 本節中的主題涵蓋直接以程式設計方式使用受控快取服務。 如需 受控快取服務 ASP.NET 提供者的詳細資訊,請參閱ASP.NET 4 個適用于 Azure 受控快取服務 的快取提供者。
程式設計模型
受控快取服務程式設計模型是針對另行快取程式設計模式所設計。 若資料不存在於快取中,應用程式 (而非分散式快取) 必須重新將資料從原始資料來源載入到快取。
另行快取程式設計考量
設計應用程式碼,使其和快取能夠彼此獨立運作,如此應用程式便能在無法使用快取資料的情況下繼續運作。 快取中的資料不會長期保留,所以資料有時可能無法使用。 例如,如果快取調整為不同的快取供應項目,便會遺失記憶體中的快取項目。 要求快取中不存在的項目稱為快取遺漏。
使用受控快取服務高可用性功能時,快取專案的備份複本有助於防範電腦和處理快取失敗。 即使啟用了高可用性,無論是否在遠端的情況下,所有快取資料都會因為重大災難事件而遺失。 要求持續性的項目必須使用資料庫或其他永續性儲存體技術。 如需詳細資訊,請參閱Azure 受控快取服務的高可用性。
您的程式碼可能會因為快取遺漏而發生許多其他原因。 例如,快取專案可能已過期或根據正常到期和收回原則收回。 不論原因為何,應用程式碼都必須能夠存取原始資料來源,以便在快取中重新填入項目。 如需詳細資訊,請參閱Azure 受控快取服務的到期和收回。
開發程序
您必須執行一些基本步驟,以便在應用程式中開始使用快取。
建立快取。
設定用戶端使用快取。
使用受控快取服務 API 來使用快取。
建立快取
受控快取服務中的快取是使用 Powershell Cmdlet 建立,然後在 Azure 管理入口網站中管理。 如需建立快取的指引,請參閱如何:建立 Azure 快取受控快取服務。
設定用戶端
您必須設定應用程式 (亦稱為快取用戶端) 以使用快取。 這包含兩個步驟:
參考Visual Studio專案中的受控快取服務元件。
使用設定檔的設定或程式碼來設定快取的存取。
受控快取服務提供快取NuGet套件,可將元件參考新增至專案的web.config或app.config檔案中。 安裝快取 NuGet 封裝之後,您可編輯新增的設定並指定快取端點和存取金鑰。 如需逐步指引,請參閱如何:設定適用于 Azure 的快取用戶端受控快取服務。
使用快取服務 API
最後一個步驟是在應用程式程式碼中使用快取。 這有兩種方式可以完成:
針對會話狀態和輸出快取,請使用適用于 Azure 受控快取服務的 ASP.NET 4個快取提供者。
使用快取 API 與應用程式內已佈建的快取進行互動。
若要直接存取程式碼中的快取,請使用 受控快取服務 API 中的DataCacheFactoyConfiguration、DataCacheFactory和DataCache類別。 下列範例示範如何使用應用程式組態檔區段中的設定 default
dataCacheClient
,在快取中 default
新增和擷取字串。
// Cache client configured by settings in application configuration file.
DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration("default");
DataCacheFactory cacheFactory = new DataCacheFactory(config);
DataCache defaultCache = cacheFactory.GetDefaultCache();
// Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject");
string strObject = (string)defaultCache.Get("testkey");
' Cache client configured by settings in application configuration file.
Dim config As New DataCacheFactoryConfiguration("default")
Dim cacheFactory As New DataCacheFactory(config)
Dim defaultCache As DataCache = cacheFactory.GetDefaultCache()
' Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject")
Dim strObject As String = defaultCache.Get("testkey")
您也可以透過 DataCache 建構函式的多載來存取具名快取和組態檔區段。 下列程式碼範例的功用與前一個範例相同。
// Cache client configured by settings in application configuration file.
DataCache defaultCache = new DataCache("default", "default");
// Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject");
string strObject = (string)defaultCache.Get("testkey");
' Cache client configured by settings in application configuration file.
Dim defaultCache As New DataCache("default", "default")
' Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject")
Dim strObject As String = defaultCache.Get("testkey")
注意
前一個範例無法在 RoleEntryPoint 方法中多載。 如需詳細資訊,請參閱How to: Create a DataCache Object in RoleEntryPoint Methods for Azure 受控快取服務。
如需使用 受控快取服務 API 來存取快取的其他資訊,請參閱使用 Azure 受控快取服務一節。
如需示範受控快取服務的完整範例,請參閱Azure 受控快取服務範例。