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

启用适用于 Azure Cache for Redis 的区域冗余

在本文中,你将了解如何使用 Azure 门户配置区域冗余 Azure 缓存实例。

注意

在不支持区域的地区中,用于启用区域冗余的选项处于禁用状态。 有关支持区域的地区列表,请参阅 Azure Cache for Redis - 支持区域的地区

Azure Cache for Redis 标准层(预览版)、高级层和企业层通过将每个缓存托管在两台专用虚拟机 (VM) 上来提供内置冗余。 即使这些 VM 位于单独的 Azure 容错域和更新域中且高度可用,它们也容易受到数据中心级别故障的影响。 Azure Cache for Redis 还在其标准层(预览版)、高级层和企业层中支持区域冗余。 区域冗余缓存在分布于多个可用性区域间的 VM 上运行。 它提供更高的复原能力和可用性。

先决条件

创建缓存

若要创建缓存,请执行以下步骤:

  1. 登录到 Azure 门户,然后选择“创建资源”。

  2. 在“新建”页上选择“数据库”,然后选择“Azure Cache for Redis”。

    选择 Azure Cache for Redis。

  3. 在“基本信息”页面上,配置新缓存的设置。

    设置 建议值 描述
    订阅 选择订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。
    资源组 选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    DNS 名称 输入任何全局唯一的名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS 名称>.redis.cache.windows.net。
    位置 选择一个位置。 选择使用缓存的其他服务附近的区域
    缓存类型 选择高级层或企业层缓存。 定价层决定可用于缓存的大小、性能和功能。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述
  4. 支持可用性区域的地区中,标准层缓存始终使用 Automatic 区域分配创建为区域冗余的缓存。 显示“高级”选项卡的屏幕截图,其中标准缓存的可用性区域带有红色边框。

  5. 对于高级层缓存,在“资源”菜单中选择“高级”。 在支持区域的地区中,可以通过多种方式为此层启用区域冗余。

    1. 使用 Automatic 区域分配
      • “自动分配区域”是为“可用性区域”选择的默认选项。 显示“高级”选项卡的屏幕截图,其中高级缓存的“可用性区域”带有红色边框。
    2. 使用“UserDefined 区域分配”
      • 对于高级层缓存,“可用性区域”设置可由用户编辑,他们可以使用该设置来选择非区域或者为缓存手动选择区域。
    • 选择“NoZones”:显示“高级”选项卡的屏幕截图,其中“可用性区域”带有红色边框,并为高级缓存选择了“无”选项。
    • 手动选择区域时,可用性区域的数量必须始终小于或等于缓存的节点总数:屏幕截图显示可用性区域计数设置为 1,副本计数设置为 3。
  6. 对于企业层缓存,请在“资源”菜单中选择“高级”。 对于“区域冗余”,请选择“区域冗余(建议)”

    显示“高级”选项卡的屏幕截图,其中的“区域冗余”带有红色边框。

  7. 配置群集和/或 RDB 持久性的设置。

    注意

    区域冗余不支持使用多个副本持久化仅追加文件 (AOF)。

  8. 选择创建

    创建缓存需要花费一点时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果状态显示为正在运行,则表示该缓存可供使用。

Automatic 区域分配

Azure Cache for Redis 根据每个分片的节点数和区域的区域支持自动将区域分配给缓存,这样缓存会分布在多个区域中以实现高可用性。

使用这种类型的分配,用户无需担心为缓存手动选择区域,以及 Azure 处理这些区域时与区域关联的容量问题。

分配给缓存的实际区域是从用户那里分离出来的。

可以在以下位置找到不同类型的区域分配的 REST API 规范:创建 - ZonalAllocationPolicy

如果未在请求中传递属性 ZonalAllocationPolicy,Azure 会根据地区的区域性可支持性和容量为缓存分配其值。

支持的 ZonalAllocationPolicy 属性值包括:

  1. 自动

可以传递此值,让 Azure 自动将区域分配给缓存。

在支持区域的地区,如果未在请求中传递 ZonalAllocationPolicy,则自 2024-11-01 API 版本开始,会选择此值作为缓存的默认选项。

  1. UserDefined

用户只能为高级缓存传递此值,并且可以在手动选择区域时在请求正文中传递此值。

  1. NoZones

用户只能为高级缓存传递此值。 这是不支持区域的地区中唯一支持的值。

  • 用户无法在标准缓存请求中传递此值,因为它们无法显式选择非区域标准缓存。

如果未在请求中传递 ZonalAllocationPolicy,则会选择此值作为缓存的默认选项:

  • 不支持区域的地区(无论使用的 API 版本如何)。
  • 如果使用的 API 版本小于 2024-11-01,则为所有地区(不考虑区域支持)。

重要

一旦为缓存启用“Automatic 区域分配”,将无法修改此设置。

重要

  • 从 2024-11-01 API 版本开始,选择“Automatic 区域分配”作为高级缓存和标准缓存的默认选项。 在极少数情况下,如果没有足够的区域容量而无法至少分配两个区域,并且用户未在请求中传递 ZonalAllocationPolicy,则 Azure 将创建一个非区域缓存,用户可以通过在响应中检查 ZonalAllocationPolicy 属性来进行验证。
    • 因此,建议不要在创建缓存时在请求正文中传递 ZonalAllocationPolicy,因为它将使 Azure 能够基于区域的区域性可支持性和容量在“Automatic”、“NoZones”中为缓存选择最佳选项。 否则,如果用户想要显式使用特定的区域分配策略,则可以传递 ZonalAllocationPolicy

重要

用户可通过手动选择的区域更新其现有非区域或缓存,以使用“Automatic 区域分配”,方法是通过将 ZonalAllocationPolicy 设置为“Automatic”来更新缓存。 有关更新过程的更多信息,请参阅将 Azure Cache for Redis 实例迁移到可用性区域支持

区域冗余常见问题解答

为什么在创建高级缓存时无法启用区域冗余?

区域冗余只在具有可用性区域的 Azure 区域中可用。 请参阅具有可用性区域的 Azure 区域,以获取最新列表。

为什么在缓存创建过程中无法选择所有三个区域?

在默认情况下,高级缓存有一个主要节点和一个副本节点。 若要为两个以上可用性区域配置区域冗余,需要将更多副本添加到要创建的缓存。 可用性区域的总数不能超过缓存中节点的组合计数(包括主节点和副本节点)。

是否可以更新现有的标准或高级缓存以使用区域冗余?

  • 是,就地支持更新现有的标准或高级缓存以使用区域冗余(预览版)。 用户可以通过导航到“资源”菜单上的“高级设置”,然后选中“自动分配区域”、单击“保存”按钮来启用它。 启用区域冗余后,将会无法禁用区域冗余。

  • 有关详细信息,请参阅将 Azure Cache for Redis 实例迁移到可用性区域支持

  • 还可以在更新缓存时通过在请求正文中将 ZonalAllocationPolicy 传递为 Automatic 来完成此操作。 有关使用 REST API 的更新过程的详细信息,请参阅更新 - ZonalAllocationPolicy

    • 不支持将 ZonalAllocationPolicy 更新为除 Automatic 以外的任何其他值。

    重要

    一旦为缓存启用“Automatic 区域分配”,将无法修改此设置。

    重要

    对于异地复制缓存或带有 VNet 注入的缓存,目前不支持为现有缓存(通过不同的区域分配创建)启用自动区域分配。

跨 Azure 可用性区域复制数据的费用是多少?

如果你的缓存使用的区域冗余配置了多个可用性区域,则数据会从一个区域的主缓存节点复制到另一个区域中的其他节点。 数据传输费用是在所选可用性区域间移动的数据的网络流出费用。 有关详细信息,请参阅带宽定价详细信息

后续步骤

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