你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure Cache for Redis 企业实例配置活动异地复制

本文介绍了如何使用 Azure 门户配置活动异地复制的缓存。

活动异地复制最多可将 5 个 Azure Cache for Redis 企业实例分组到一个跨 Azure 区域的缓存中。 所有实例都充当本地主缓存。 应用程序决定将哪个或哪些实例用于读取和写入请求。

注意

Azure 区域之间的数据传输按标准带宽费率收费。

可用范围

基本、标准 高级 Enterprise、Enterprise Flash
可用 No

Azure Cache for Redis 高级层提供称为被动异地复制的异地复制版本。 被动异地复制提供主动-被动配置。

活动异地复制先决条件

使用活动异地复制时存在一些限制:

  • 仅支持 RediSearchRedisJSON 模块
  • Enterprise Flash 层上,只能使用“无逐出”逐出策略。 Enterprise 层支持所有逐出策略。
  • 不支持数据持久性,因为活动异地复制提供了卓越的体验。
  • 无法将现有(即正在运行的)缓存添加到异地复制组。 只能在创建缓存时将缓存添加到异地复制组。
  • 异地复制组中的所有缓存必须具有相同的配置。 例如,所有缓存必须具有相同的 SKU、容量、逐出策略、群集策略、模块和 TLS 设置。
  • 使用活动异地复制时,不能使用 FLUSHALLFLUSHDB Redis 命令。 禁止命令可防止意外删除数据。 请改用刷新控制平面操作

创建或加入活动异地复制组

  1. 新建 Azure Cache for Redis 资源时,请选择“高级”选项卡。完成包含群集策略的表单的第一部分。 有关选择“群集策略”的详细信息,请参阅群集策略

  2. 选择“配置”以设置“活动异地复制” 。

    Screenshot of advanced tab of create new Redis cache page.

  3. 为第一个缓存实例新建复制组。 或从列表中选择一个现有复制组。

    Screenshot showing replication groups.

  4. 选择“配置”以完成。

  5. 等待第一个缓存创建成功。 完成后,在“活动异地复制”部分,你将看到已设置为“已配置”。 对异地复制组中的每个缓存实例重复执行上述步骤。

    Screenshot showing active geo-replication is configured.

从活动异地复制组中删除

若要从活动异地复制组中删除缓存实例,只需删除相应实例即可。 其余实例随后会自动重新配置自身。

如果复制组中的其中一个缓存因区域中断而不可用,你可以将不可用的缓存强制从复制组中删除。

应删除不可用的缓存,因为复制组中剩余的缓存将开始存储尚未共享到不可用缓存的元数据。 发生这种情况时,复制组中的可用缓存可能会耗尽内存。

  1. 转到 Azure 门户,在复制组中选择一个仍然可用的缓存。

  2. 选择左侧“资源”菜单中的“活动异地复制”,查看工作窗格中的设置。

    Screenshot of active geo-replication group.

  3. 通过选中此框,选择需要强制取消链接的缓存。

  4. 选择“强制取消链接”,然后选择“确定”进行确认。

    Screenshot of unlinking in active geo-replication.

  5. 受影响区域的可用性还原后,需要删除受影响的缓存并重新创建该缓存,以将其添加回复制组。

使用 Azure CLI 或 PowerShell 设置活动异地复制

Azure CLI

使用 Azure CLI 创建新的缓存和异地复制组,或将新缓存添加到现有异地复制组。 有关详细信息,请参阅 az redisenterprise create

使用 Azure CLI 在新的异地复制组中创建新的 Enterprise 实例

此示例在美国东部区域创建一个名为 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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"

要正确配置活动异地复制,必须使用 --linked-databases 参数添加正在创建的缓存实例的 ID。 该 ID 的格式为:

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

使用 Azure CLI 在现有异地复制组中创建新的 Enterprise 实例

此示例在美国西部区域创建名为 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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"

与以前一样,需要使用 --linked-databases 参数列出 Cache1 和 Cache2。

Azure PowerShell

使用 Azure PowerShell 创建新的缓存和异地复制组,或将新的缓存添加到现有异地复制组。 有关详细信息,请参阅 New-AzRedisEnterpriseCache

使用 PowerShell 在新的异地复制组中创建新的 Enterprise 实例

此示例在美国东部区域创建一个名为 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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'

要正确配置活动异地复制,必须使用 -LinkedDatabase 参数添加正在创建的缓存实例的 ID。 该 ID 的格式为:

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

使用 PowerShell 在现有异地复制组中创建新的 Enterprise 实例

此示例在美国西部区域创建名为 Cache2 的新 Enterprise E10 缓存实例。 然后,该脚本会将缓存添加到在上一过程中创建的“replicationGroup”活动异地复制组。 它会链接主动-主动配置中的两个缓存 Cache1Cache2

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'

与以前一样,需要使用 -LinkedDatabase 参数列出 Cache1 和 Cache2。

刷新操作

由于可能会意外丢失数据,因此不能将 FLUSHALLFLUSHDB Redis 命令用于驻留在异地复制组中的任何缓存实例。 请改用位于“活动异地复制”工作窗格顶部的“刷新缓存”按钮。

Screenshot showing Active geo-replication selected in the Resource menu and the Flush cache feature has a red box around it.

使用 Azure CLI 或 PowerShell 刷新缓存

Azure CLI 和 PowerShell 还可用于触发刷新操作。 有关使用 Azure CLI 的详细信息,请参阅 az redisenterprise database flush。 有关使用 PowerShell 的详细信息,请参阅 Invoke-AzRedisEnterpriseCacheDatabaseFlush

重要

使用“刷新缓存”功能时要小心。 选择该按钮会删除当前缓存和异地复制组中链接的所有缓存中的所有数据。

使用 Azure 基于角色的访问控制管理对功能的访问。 应仅向授权用户授予刷新所有缓存的访问权限。

后续步骤

了解有关 Azure Cache for Redis 功能的详细信息。