共用方式為


設定 Enterprise Azure Cache for Redis 執行個體的使用中異地複寫 (機器翻譯)

在本文中,您將了解如何使用 Azure 入口網站來設定作用中異地複寫快取。

作用中異地複寫最多可將 Enterprise Azure Cache for Redis 的五個執行個體分組為跨 Azure 區域的單一快取。 所有執行個體都會做為本機、主要快取使用。 應用程式會決定要用於讀取和寫入要求的執行個體。

注意

Azure 區域間的資料傳輸會以標準頻寬費用收費。

可用性範圍

基本、標準 進階 Enterprise,Enterprise Flash
可用的 No Yes

Azure Cache for Redis 的 Premium 層會提供異地複寫的版本,稱為「被動異地複寫」。 被動異地複寫會提供主動-被動設定。

作用中異地複寫的必要條件

使用作用中異地複寫時,有一些限制:

  • 僅支援 RediSearchRedisJSON 模組
  • Enterprise Flash 層上,只能使用「沒有收回」收回原則。 Enterprise 層支援所有收回原則。
  • 不支援資料持續性,因為作用中異地複寫提供優越的體驗。
  • 您無法將現有 (亦即,執行中) 快取新增至異地複寫群組。 建立快取時,您只能將快取新增至異地複寫群組。
  • 異地複寫群組內的所有快取都必須具有相同的設定。 例如,所有快取都必須具有相同的 SKU、容量、收回原則、叢集原則、模組和 TLS 設定。
  • 使用作用中異地複寫時,您無法使用 FLUSHALLFLUSHDB Redis 命令。 禁用這些命令可防止意外刪除資料。 請改用入口網站中的排清作業
  • E1 和任何 Flash SKU 不支持主動式異地複寫。

建立或加入作用中異地複寫群組

  1. 建立新的 Azure Cache for Redis 資源時,請選取 [進階] 索引標籤。完成表單的第一個部分,包括叢集原則。 如需選擇 叢集原則的詳細資訊,請參閱 叢集

  2. 選取 [設定] 以設定 [作用中異地複寫]

    [建立新的 Redis 快取] 頁面之 [進階] 索引標籤的螢幕擷取畫面。

  3. 為第一個快取執行個體建立新的複寫群組。 或者,從清單中選取現有群組。

    顯示複寫群組的螢幕擷取畫面。

  4. 選取 [設定] 來完成設定。

  5. 等候第一個快取建立成功。 完成時,您會看到 [作用中異地複寫] 中的 [設定] 已設定完成。 針對異地複寫群組中的每個快取執行個體重複上述步驟。

    顯示已設定作用中異地複寫的螢幕擷取畫面。

從作用中異地複寫群組中移除

若要從作用中異地複寫群組中移除快取執行個體,您只需刪除執行個體即可。 其餘的執行個體接著會自動重新設定自己。

如果複寫群組中的其中一個快取因區域中斷而無法使用,您可以從複寫群組中強制移除無法使用的快取。 將 Force-unlink 套用至快取之後,您無法在強制取消鏈接之後,將寫入該快取的任何數據同步處理回復寫群組。

您應該移除無法使用的快取,因為復寫群組中的剩餘快取會開始儲存未共用至無法使用快取的元數據。 發生這種情況時,複寫群組中的可用快取可能會耗盡記憶體。

  1. 前往 Azure 入口網站,然後選取複寫群組中仍可使用的快取之一。

  2. 選取左側 [資源] 功能表中的 [作用中異地複寫],以查看工作窗格中的設定。

    作用中異地複寫群組的螢幕擷取畫面。

  3. 透過勾選方塊來選取您需要強制取消連結的快取。

  4. 選取 [強制取消連結],然後選取 [確定] 以確認執行。

    在作用中異地複寫中取消連結的螢幕擷取畫面。

  5. 還原受影響區域的可用性後,您必須刪除受影響的快取,然後重新建立快取並新增回複寫群組。

使用 Azure CLI 或 PowerShell 設定作用中異地複寫

Azure CLI

使用 Azure CLI 建立新的快取和異地複寫群組,或新增快取至現有的異地複寫群組。 如需詳細資訊,請參閱 az redisenterprise create

使用 Azure CLI 在新的異地複寫群組中建立新的企業執行個體

此範例會在美國東部區域,建立名為 Cache1 的新 Azure Cache for Redis Enterprise E10 快取執行個體。 然後,快取會新增至名為 replicationGroup 的新作用中異地複寫群組:

az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"

若要正確設定作用中異地複寫,則正在建立的快取執行個體識別碼必須加上 --linked-databases 參數。 識別碼的格式為:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

使用 Azure CLI 在現有異地複寫群組中建立新的企業執行個體

此範例會在美國西部區域,建立稱為 Cache2 的新 Enterprise E10 快取執行個體。 然後,指令碼會將快取新增至上一個程序中建立的 replicationGroup 作用中異地複寫群組。 如此一來,快取會在主動-主動設定中連結 Cache1

az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"

如前文所述,請使用 --linked-databases 參數列出 Cache1Cache2

Azure PowerShell

使用 Azure PowerShell 建立新的快取和異地複寫群組,或新增快取至現有的異地複寫群組。 如需詳細資訊,請參閱 New-AzRedisEnterpriseCache

使用 PowerShell 在新的異地複寫群組中建立新的企業執行個體

此範例會在美國東部區域,建立名為 Cache1 的新 Azure Cache for Redis Enterprise E10 快取執行個體。 然後,快取會新增至名為 replicationGroup 的新作用中異地複寫群組:

New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'

若要正確設定作用中異地複寫,則正在建立的快取執行個體識別碼必須加上 -LinkedDatabase 參數。 識別碼的格式為:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

使用 PowerShell 在現有異地複寫群組中建立新的企業執行個體

此範例會在美國西部區域,建立稱為 Cache2 的新 Enterprise E10 快取執行個體。 然後,腳本會將快取新增至在上一個程式中建立的作用中異地復寫群組。 執行 命令之後,兩個快取 Cache1Cache2 會鏈接在主動-主動組態中。

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'

如前文所述,請使用 -LinkedDatabase 參數列出 Cache1Cache2

縮放異地複寫群組中的實例

可以調整設定為使用作用中異地復寫的實例。 然而,混合不同快取大小的異地複寫組可能會帶來問題。 若要防止發生這些問題,異地復寫群組中的所有快取都必須是相同的大小和容量。

由於很難同時調整異地復寫群組中的所有實例,所以 Azure Cache for Redis 具有鎖定機制。 如果您在異地復寫群組中調整一個實例,則會調整基礎 VM,但可用的記憶體會限制在原始大小上,直到其他實例相應增加為止。 其餘實例的任何其他調整作業都會鎖定,直到它們符合要調整之第一個快取的相同組態為止。

縮放範例

例如,您的異地復寫群組中可能有三個實例,所有企業 E10 實例:

執行個體名稱 Redis00 Redis01 Redis02
類型 企業 E10 企業 E10 企業 E10

假設您想要將此異地復寫群組中的每個實例相應增加至企業 E20 實例。 您會先將其中一個快取調整為 E20:

執行個體名稱 Redis00 Redis01 Redis02
類型 企業 E20 企業 E10 企業 E10

此時, Redis01Redis02 實例只能相應增加為企業 E20 實例。 所有其他縮放操作都會被阻止。

注意

Redis00此時不會封鎖實例進一步調整。 但一旦 Redis01Redis02 調整為企業 E20,就會遭到封鎖。

一旦每個實例調整為相同的層級和大小,就會移除所有調整鎖定:

執行個體名稱 Redis00 Redis01 Redis02
類型 企業 E20 企業 E20 企業 E20

排清作業

由於可能發生意外的資料遺失,您無法使用 FLUSHALLFLUSHDB Redis 命令,搭配位於異地複寫群組中的任何快取執行個體。 請改用位於 [作用中異地複寫] 工作窗格頂端的 [排清快取] 按鈕。

顯示 [資源] 功能表中已選取 [作用中異地複寫] 而且 [排清快取] 功能周圍有紅色方塊的螢幕擷取畫面。

異地復寫計量

Azure Cache for Redis 企業層中的異地復寫狀況良好計量可協助監視異地復寫叢集的健康情況。 您可以使用此計量來監視異地複本之間的同步狀態。

若要監視 Azure 入口網站 中的異地復寫狀況良好計量:

  1. 開啟 Azure 入口網站,然後選取您的 Azure Cache for Redis 實例。

  2. 在 [資源] 功能表上,選取 [監視] 區段底下的 [計量]。

  3. 選取 [新增計量 ],然後選取 [ 異地複寫狀況良好 ] 計量。

  4. 如有需要,請套用特定異地複本的篩選。

  5. 您可以設定警示,以在 異地復寫狀況良好 計量持續發出狀況不良值 (0) 超過 60 分鐘時通知您。

    1. 選取 [ 新增警示規則]。

    2. 定義條件,如果計量值為 0 至少 60 分鐘,則為建議的時間。

    3. 新增通知的動作群組,例如:電子郵件、SMS 和其他專案。

    4. 儲存警示。

    5. 如需如何為 Redis Enterprise 快取設定警示的詳細資訊,請參閱監視 Redis 快取中的警示一節。

重要

此計量可能會因為 Azure 或客戶起始的維護事件或調整等例行作業而暫時顯示為狀況不良。 若要避免誤報,建議您設定 60 分鐘的觀察視窗,其中計量會持續保持狀況不良,以作為產生警示的適當時間,因為它可能表示需要介入的問題。

可能導致異地復本之間同步處理的常見客戶端問題

  • 使用自定義哈希標籤 – 在 Redis 中使用自訂哈希標記可能會導致數據分散在分區之間不平均,這可能會導致異地複本中的效能問題和同步處理問題,因此,除非資料庫需要執行多個索引鍵作業,否則避免使用自定義哈希標記。

  • 大型金鑰大小 - 大型金鑰可以在異地複本之間建立同步處理問題。 若要保持順暢的效能和可靠的復寫,建議您在使用異地復寫時,將密鑰大小保持在 500 MB 之下。 如果個別密鑰大小接近 2GB,快取就會面臨異地復寫健康情況問題。

使用 Azure CLI 或 PowerShell 排清快取

Azure CLI 和 PowerShell 也可以用來觸發排清作業。 如需使用 Azure CLI 的詳細資訊,請參閱 az redisenterprise database flush。 如需使用 PowerShell 的詳細資訊,請參閱 Invoke-AzRedisEnterpriseCacheDatabaseFlush

重要

使用排清快取功能時請小心。 選取按鈕會從目前快取中以及從異地複寫群組中所有連結的快取中移除所有資料。

使用 Azure 角色型存取控制來管理功能的存取權。 只有已授權的使用者才有權排清所有快取。

下一步

深入了解 Azure Cache for Redis 功能。