設定 Enterprise Azure Cache for Redis 執行個體的使用中異地複寫 (機器翻譯)
在本文中,您將了解如何使用 Azure 入口網站來設定作用中異地複寫快取。
作用中異地複寫最多可將 Enterprise Azure Cache for Redis 的五個執行個體分組為跨 Azure 區域的單一快取。 所有執行個體都會做為本機、主要快取使用。 應用程式會決定要用於讀取和寫入要求的執行個體。
注意
Azure 區域間的資料傳輸會以標準頻寬費用收費。
可用性範圍
層 | 基本、標準 | 進階 | Enterprise,Enterprise Flash |
---|---|---|---|
可用的 | No | 無 | Yes |
Azure Cache for Redis 的 Premium 層會提供異地複寫的版本,稱為「被動異地複寫」。 被動異地複寫會提供主動-被動設定。
作用中異地複寫的必要條件
使用作用中異地複寫時,有一些限制:
- 僅支援 RediSearch 和 RedisJSON 模組
- 在 Enterprise Flash 層上,只能使用「沒有收回」收回原則。 Enterprise 層支援所有收回原則。
- 不支援資料持續性,因為作用中異地複寫提供優越的體驗。
- 您無法將現有 (亦即,執行中) 快取新增至異地複寫群組。 建立快取時,您只能將快取新增至異地複寫群組。
- 異地複寫群組內的所有快取都必須具有相同的設定。 例如,所有快取都必須具有相同的 SKU、容量、收回原則、叢集原則、模組和 TLS 設定。
- 使用作用中異地複寫時,您無法使用
FLUSHALL
和FLUSHDB
Redis 命令。 禁用這些命令可防止意外刪除資料。 請改用入口網站中的排清作業。 - E1 SKU 不支持主動式異地複寫。
建立或加入作用中異地複寫群組
建立新的 Azure Cache for Redis 資源時,請選取 [進階] 索引標籤。完成表單的第一個部分,包括叢集原則。 如需選擇 叢集原則的詳細資訊,請參閱 叢集 。
選取 [設定] 以設定 [作用中異地複寫]。
為第一個快取執行個體建立新的複寫群組。 或者,從清單中選取現有群組。
選取 [設定] 來完成設定。
等候第一個快取建立成功。 完成時,您會看到 [作用中異地複寫] 中的 [設定] 已設定完成。 針對異地複寫群組中的每個快取執行個體重複上述步驟。
從作用中異地複寫群組中移除
若要從作用中異地複寫群組中移除快取執行個體,您只需刪除執行個體即可。 其餘的執行個體接著會自動重新設定自己。
如果區域中斷,強制取消連結
如果複寫群組中的其中一個快取因區域中斷而無法使用,您可以從複寫群組中強制移除無法使用的快取。 將 Force-unlink 套用至快取之後,您無法在強制取消鏈接之後,將寫入該快取的任何數據同步處理回復寫群組。
您應該移除無法使用的快取,因為複寫群組中剩餘的快取會開始將尚未共用的中繼資料儲存至無法使用的快取。 發生這種情況時,複寫群組中的可用快取可能會耗盡記憶體。
前往 Azure 入口網站,然後選取複寫群組中仍可使用的快取之一。
選取左側 [資源] 功能表中的 [作用中異地複寫],以查看工作窗格中的設定。
透過勾選方塊來選取您需要強制取消連結的快取。
選取 [強制取消連結],然後選取 [確定] 以確認執行。
還原受影響區域的可用性後,您必須刪除受影響的快取,然後重新建立快取並新增回複寫群組。
使用 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
參數列出 Cache1 和 Cache2。
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 快取執行個體。 然後,腳本會將快取新增至在上一個程式中建立的作用中異地復寫群組。 執行 命令之後,兩個快取 Cache1 和 Cache2 會鏈接在主動-主動組態中。
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
參數列出 Cache1 和 Cache2。
調整異地復寫群組中的實例
可以調整設定為使用作用中異地復寫的實例。 不過,具有不同快取大小混合的異地復寫群組可能會造成問題。 若要防止發生這些問題,異地復寫群組中的所有快取都必須是相同的大小和容量。
由於很難同時調整異地復寫群組中的所有實例,所以 Azure Cache for Redis 具有鎖定機制。 如果您在異地復寫群組中調整一個實例,則會調整基礎 VM,但可用的記憶體會限制在原始大小上,直到其他實例相應增加為止。 其餘實例的任何其他調整作業都會鎖定,直到它們符合要調整之第一個快取的相同組態為止。
調整範例
例如,您的異地復寫群組中可能有三個實例,所有企業 E10 實例:
執行個體名稱 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
類型 | 企業 E10 | 企業 E10 | 企業 E10 |
假設您想要將此異地復寫群組中的每個實例相應增加至企業 E20 實例。 您會先將其中一個快取調整為 E20:
執行個體名稱 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
類型 | 企業 E20 | 企業 E10 | 企業 E10 |
此時, Redis01
和 Redis02
實例只能相應增加為企業 E20 實例。 所有其他調整作業都會遭到封鎖。
注意
Redis00
此時不會封鎖實例進一步調整。 但是,一旦 Redis01
或 Redis02
調整為企業 E20,它就會遭到封鎖。
一旦每個實例調整為相同的層級和大小,就會移除所有調整鎖定:
執行個體名稱 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
類型 | 企業 E20 | 企業 E20 | 企業 E20 |
排清作業
由於可能發生意外的資料遺失,您無法使用 FLUSHALL
和 FLUSHDB
Redis 命令,搭配位於異地複寫群組中的任何快取執行個體。 請改用位於 [作用中異地複寫] 工作窗格頂端的 [排清快取] 按鈕。
使用 Azure CLI 或 PowerShell 排清快取
Azure CLI 和 PowerShell 也可以用來觸發排清作業。 如需使用 Azure CLI 的詳細資訊,請參閱 az redisenterprise database flush。 如需使用 PowerShell 的詳細資訊,請參閱 Invoke-AzRedisEnterpriseCacheDatabaseFlush。
重要
使用排清快取功能時請小心。 選取按鈕會從目前快取中以及從異地複寫群組中所有連結的快取中移除所有資料。
使用 Azure 角色型存取控制來管理功能的存取權。 只有已授權的使用者才有權排清所有快取。
下一步
深入了解 Azure Cache for Redis 功能。