Azure 角色中快取中的區域和標籤

重要

Microsoft 建議所有新的開發都使用 Azure Redis 快取。 如需選擇 Azure 快取供應專案的目前檔和指引,請參閱 哪個 Azure 快取供應專案適合我?

In-Role Cache 支援建立和使用使用者定義 區域。 這項功能適用于位於角色型In-Role快取上的快取。 區域是快取項目的子群組。 區域也支援含有名為標籤之額外描述性字串的快取項目註釋。 區域支援對該區域內的任何標記項目執行搜尋作業的能力。

區域考量

區域是選擇性的;如果您想要使用它們,請使用 CreateRegion 方法在程式碼中明確建立它們。 建立區域之後,您可以將標籤新增至要插入該區域的物件中。 AddPut方法上有多載可接受區功能變數名稱稱。 若要搜尋具有指定標記的物件區域,請使用 GetObjectsByTagGetObjectsByAnyTagGetObjectsByAllTags方法。

由於搜尋功能的架構需求,所以區域中的物件會受限於單一快取主機。 在 Azure 部署中,這表示整個區域位於單一伺服器上。 若已啟用高可用性,則該區域的備份會存在於不同的伺服器上。 在 Azure 中,這些伺服器是裝載In-Role快取之角色的虛擬機器實例。 此行為與未使用區域的案例不同 在該案例中,散佈於記憶體中之快取的新項目會放置於任何可用的快取伺服器上。

警告

區域必須以某一部快取伺服器上的單一實體形式存在。 因此,任何單一角色實例上可用的快取記憶體數量必須大於最大的預期區域。 可能使用多個較小型區域來達成區域和標籤的優點,以及分散式快取的好處。

範例

下列範例展示如何建立名為 Test 的區域。

DataCache cache = new DataCache("default");
cache.CreateRegion("Test");

下列範例展示如何將這三個物件新增至含有標籤的 Test 區域。

List<DataCacheTag> tagList1 = new List<DataCacheTag>()
{ 
    new DataCacheTag("Tag1"),
    new DataCacheTag("Tag2")
};
List<DataCacheTag> tagList2 = new List<DataCacheTag>()
{
    new DataCacheTag("Tag3")
};
cache.Put("Key1", "Value1", tagList1, "Test");
cache.Put("Key2", "Value2", tagList1, "Test");
cache.Put("Key3", "Value3", tagList2, "Test");

下列範例展示如何針對所有含 Test 標籤的物件搜尋 Tag1 區域。

foreach (KeyValuePair<string, object> result in 
    cache.GetObjectsByTag(new DataCacheTag("Tag1"), "Test"))
{
    string keyValue = result.Key;
    string objectValue = result.Value.ToString();
}

另請參閱

概念

Azure 快取的角色中快取功能