本页介绍标准层级 Memorystore for Redis 实例的高可用性 (HA)。
标准层级通过将数据复制到一个或多个副本以及快速地自动故障切换到副本,保护 Redis 实例免受常见故障的影响。
标准层级预配一个主实例和一个或多个副本。如果标准层级实例停用了 readReplicaMode 设置,则只有一个非读取副本。启用了此设置的标准层级实例有一到五个读取副本。如需确定该设置是否已启用,请参阅查看实例的读取副本信息。
Memorystore for Redis 通过将主实例复制到一个或多个副本来提供高可用性。Memorystore for Redis 使用异步复制协议将您对主实例中的数据所做的任何更改复制到副本。由于复制的异步特性,并且取决于主实例的写入速率,副本可能会滞后于主实例。
如果主实例发生故障,实例会自动故障切换到副本。对于具有多个副本的实例,该实例会自动故障切换到具有最小复制延迟的健康副本。

如果您将实例配置为只有一个非读取副本,则 Memorystore for Redis 会将所有应用连接定向到主端点。如果您将实例配置为使用读取副本,应用还可以使用读取端点在所有副本之间分布读取查询。
发生故障切换时
当主实例发生故障时,系统会进行故障切换。在故障切换期间,主实例和读取端点会自动重定向到新的主实例和副本。Memorystore for Redis 会断开与主端点的所有连接。Memorystore for Redis 还会中断读取端点与提升的读取副本之间的连接。
故障切换对应用有何影响
当主实例故障转移到副本时,Memorystore for Redis 会断开与实例主端点的现有连接。在自动修复期间,实例平均不可用 30 秒;在维护事件期间,实例平均不可用 15 秒。重新连接后,您的应用会使用相同的连接字符串或 IP 地址自动重定向到新的主实例。您无需在故障切换后更新应用。
在故障切换期间,如果读取端点存在连接,则 Memorystore for Redis 会中断与正在提升为主实例的副本的连接。Memorystore for Redis 会继续处理与其他副本的连接。故障切换完成并且新的副本可用后,Memorystore for Redis 会将连接重定向到新副本。
在故障切换后重试实例连接
发生故障切换时,Memorystore for Redis 会舍弃来自主端点的所有连接。根据副本的数量,Memorystore for Redis 也可能会舍弃一些读取连接。
由于连接中断,因此您的应用必须重试才能重新建立连接。我们建议重试逻辑使用指数退避算法,以确保您不会因重试请求过多而导致实例过载。除了包含重试逻辑之外,我们还建议您通过手动故障切换来测试故障切换对应用有何影响。
大多数 Redis 客户端都内置了重试功能。如果因故障切换而导致连接断开,我们建议您使用这些重试功能。
执行以下任务时会发生故障切换:
如果您在应用中实现重试逻辑来处理故障切换引起的连接中断,则实例性能应该不会受到重大影响。
查看高可用性的状态
您可以使用 Cloud Monitoring 查看 Redis 实例的高可用性指标。如需了解 Cloud Monitoring 为 Memorystore for Redis 提供的指标,请参阅监控 Redis 实例和 Memorystore for Redis 支持的监控指标。
如需查看 Redis 提供的内置复制状态,请使用 INFO 命令。