關於 Azure 快取的角色中快取
重要
Microsoft 建議所有新的開發都使用 Azure Redis 快取。 如需選擇 Azure 快取供應專案的目前檔和指引,請參閱 哪個 Azure 快取供應專案適合我?
In-Role Cache 支援在 Azure 角色上裝載快取服務的能力。 在此模型中,快取是雲端服務的一部分。 系統會選取雲端服務內的一個角色來裝載In-Role快取。 該角色的執行中執行個體加入記憶體資源來形成「快取叢集」(Cache Cluster)。 此私用快取叢集僅適用於相同部署中的角色。 In-Role快取有兩個主要部署拓撲:共置和專用。 共置角色也主控其他非快取應用程式碼和服務。 專用角色是僅用於快取的背景工作角色。 下列主題會更詳細地討論這些快取拓撲。
如需角色型In-Role快取的逐步解說,請參閱 如何使用 Azure In-Role 快取。 如需可下載的範例,請參閱 Azure In-Role快取範例。
In-Role快取概念
本節提供與角色型In-Role快取相關的三個重要概念概念概觀。
快取叢集
具名快取
Cache Clients
快取叢集
Azure 角色有一或多個實例。 每一個執行個體是設定來主控指定角色的虛擬機器。 當已啟用快取的角色在多個實例上執行In-Role時,就會形成快取叢集。 快取叢集是分散式快取服務,使用叢集中所有機器的聯合記憶體。 應用程式在快取叢集中新增和擷取項目時,不必知道項目儲存在哪一台機器上。 如果啟用高可用性,項目的備份副本會自動儲存在不同虛擬機器執行個體上。
注意
每項雲端服務僅支援一個快取叢集。 為每個角色指定個別的儲存體帳戶,即可在一項雲端服務中設定多個快取叢集。 但是,不支援此設定。
當您在 Azure 角色上啟用In-Role快取時,您可以指定可用於快取的記憶體數量。 在共置案例中,您可以在主控角色的虛擬機器上選擇可用的記憶體百分比。 在專用案例中,虛擬機器的所有可用記憶體都會用於快取。 不過,由於作業系統記憶體需求,可用記憶體一定會小於虛擬機器上的實體記憶體總計。
因此,快取記憶體總數取決於保留用於快取的角色記憶體乘以角色數目。 您可以藉由增加或減少該角色的執行中實例數目,有效地相應增加或減少總快取記憶體。
警告
相應減少裝載In-Role快取之角色的執行中實例時,一次不超過三個實例的實例計數。 變更完成之後,您可以移除最多三個額外的執行中執行個體,重覆此步驟直到您達到執行中執行個體的必要數量。 同時減少超過三個執行個體會導致快取叢集不穩定。
每個快取叢集都會維護 Azure 儲存體中叢集執行時間狀態的共用資訊。 在開發期間,您可以使用 Azure 儲存體模擬器。 已部署的角色必須指定有效的 Azure 儲存體帳戶。 在Visual Studio中,您可以在角色屬性的 [快取] 索引標籤上指定適當的儲存體帳戶。
具名快取
每一個快取叢集至少都有一個名為 default
的快取。 使用角色型In-Role快取,您也可以新增其他 具名快取。 每一個快取有各種可變更的設定。 下列螢幕擷取畫面顯示Visual Studio角色設定上 [快取] 索引標籤的[具名快取設定] 區段。
在Visual Studio中,按一下 [新增具名快取] 按鈕以新增其他具名快取。 在前一個範例中,已新增其他兩個快取:NamedCache1
和 NamedCache2
。 每一個快取都有不同的設定。 請在表格中選取和修改特定欄位來變更設定。
具名快取讓應用程式設計者更有彈性。 每一個具名快取都有自己的內容。 例如,一個快取可以啟用 [高可用性] 來享受高可用性。 其他快取可能不需要此設定,且高可用性需要兩倍的記憶體來存放每一個快取的項目。 最好只在需要高可用性的快取上使用高可用性,才能充分利用資源。 在其他類似的情況下,可搭配不同內容來使用多個快取,以符合應用程式需求。
Cache Clients
「快取用戶端」(Cache Client) 是指在快取叢集中儲存和擷取項目的任何應用程式碼。 在角色上In-Role快取時,快取用戶端必須是相同快取角色的一部分,或併入部署中的其他角色。 請使用應用程式或 Web 設定檔來設定快取用戶端。 如需詳細資訊,請參閱如何:準備Visual Studio使用 Azure In-Role快取。 下列範例顯示組態檔中的 dataCacheClient 元素。
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="CachingRole1" />
<!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
</dataCacheClient>
</dataCacheClients>
在上一個範例中, autoDiscover 元素的 識別碼 屬性設定為 CachingRole1
。 此識別碼指定 CachingRole1
已啟用快取In-Role。 它提供快取伺服器的位置。 快取用戶端會在任何快取作業中自動使用 CachingRole1
。
設定快取用戶端後,它就可以依名稱存取任何快取。 下列範例會存取 NamedCache1
快取並將項目新增至快取中。
DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");
DataCache建構函式會採用兩個參數:快取名稱和dataCacheClient區段名稱。 如需快取名稱的相關資訊,請參閱上一節的具名快取。