为Azure Cache for Redis启用区域冗余

重要

Azure Cache for Redis宣布其所有 SKU 的停用时间表。 建议尽快将现有Azure Cache for Redis实例移动到Azure托管 Redis。

迁移指南:

有关停用的更多详细信息:

本文介绍如何使用 Azure 门户配置区域冗余Azure缓存实例。

注意

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

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

先决条件

创建缓存

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

  1. 登录到 Azure 门户并选择创建资源

  2. New 页上,选择 Databases,然后选择 Azure Cache for Redis

    Select Azure Cache for Redis.

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

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

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

    1. 使用自动区域分配
      • 自动分配区域是为 可用性区域 选择的默认选项。 显示“高级”选项卡的屏幕截图,其中高级缓存的“可用性区域”带有红色边框。
    2. 使用用户定义的区域分配
      • 对于高级层缓存,“可用性区域”设置可由用户编辑,他们可以使用该设置来选择非区域或者为缓存手动选择区域。
    • 选择“NoZones”:显示“高级”选项卡的屏幕截图,其中“可用性区域”带有红色边框,并为高级缓存选择了“无”选项。
    • 手动选择区域时,可用性区域的数量必须始终小于或等于缓存的节点总数:屏幕截图显示可用性区域计数设置为 1,副本计数设置为 3。
  6. 配置有关群集和/或 RDB 数据存储的设置。

    注意

    在有多个副本的情况下区域冗余不支持仅追加文件 (AOF) 持久性。

  7. 选择创建

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

自动区域分配

Azure Cache for Redis 根据每个分片的节点数和区域的可用区支持,自动为缓存分配可用区,从而将缓存分布在多个可用区,以提高高可用性。

使用此类型的分配,用户无需担心手动选择区域。 分配给缓存的实际区域是从用户那里分离出来的。 Azure确保缓存的主节点和副本节点分布在不同的区域中以实现高可用性。

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

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

支持的 ZonalAllocationPolicy 属性值包括:

  1. 自动

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

在支持地区的区域中,如果请求中未传递 ,则从 2024-11-01 API 版本开始,该选项将作为缓存的默认选项ZonalAllocationPolicy

  1. UserDefined

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

  1. NoZones

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

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

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

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

重要

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

重要

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

重要

用户可以通过将 ZonalAllocationPolicy 设置为“自动”,将现有的非地区或缓存更新为手动选择的地区以使用自动地区分配。 有关更新过程的详细信息,请参阅 将Azure Cache for Redis实例迁移到可用区支持

区域冗余常见问题解答

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

区域冗余仅在具有可用性区域的Azure区域中可用。 有关最新列表,请参阅 具有可用性区域的 Azure 区域

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

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

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

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

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

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

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

    重要

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

    重要

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

跨Azure 可用性区域复制数据需要花费多少?

当缓存使用配置了多个可用性区域的区域冗余时,数据将从一个区域中的主缓存节点复制到另一个区域中的其他节点。 数据传输费用是因为数据在所选可用区(可用性区域)之间移动所产生的网络出口成本。 有关详细信息,请参阅带宽定价详细信息

后续步骤

详细了解Azure Cache for Redis功能。