使用复制组的高可用性 - 用于 Redis 的 Amazon ElastiCache
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用复制组的高可用性

单节点 Amazon ElastiCache Redis 集群是具有有限数据保护服务 (AOF) 的内存中实体。如果您的集群出于任何原因发生故障,您将丢失集群中的所有数据。但是,如果您正在运行 Redis 引擎,则可将 2 到 6 个节点归入一个具有副本的集群,其中,1 到 5 个只读节点包含该组的单个读/写主节点的复制数据。在这种情况下,如果一个节点出于任何原因发生故障,您不会丢失所有数据,因为这些数据已在另外的一个或多个节点中复制。如果发生故障的是读/写主节点,由于复制延迟,某些数据可能会丢失。

如下图所示,复制结构包含在分片(在 API/CLI 中称作节点组)中,分片则包含在 Redis 集群中。Redis (已禁用集群模式)集群始终只有一个分片。Redis (已启用集群模式)集群可拥有最多 250 个分片(该集群的数据跨这些分片进行分区)。您可以创建具有更多分片和更少副本的集群,每个集群最多可包含 90 个节点。此集群配置的范围可以从 90 个分片和 0 个副本到 15 个分片和 5 个副本,这是允许的最大副本数。

如果 Redis 引擎版本为 5.0.6 或更高版本,则可将节点或分片限制提高到每个集群的最大值 500。例如,您可以选择配置一个介于 83 个分片(一个主分片和每个分片 5 个副本)和 500 个分片(单个主分片和无副本)之间的 500 个节点集群。确保有足够的可用 IP 地址来满足增加要求。常见的缺陷包括子网组中的子网太小,或者子网共享并被其他集群频繁使用。有关更多信息,请参阅创建子网组

对于低于 5.0.6 的版本,限制为每个集群 250 个。

要请求提高限制,请参阅 AWS 服务限制并选择限制类型 Nodes per cluster per instance type (每个实例类型的每个集群的节点数)

图像:Redis (已禁用集群模式)集群具有一个分片和 0 到 5 个副本节点

Redis (已禁用集群模式) 集群有一个分片和 0 到 5 个副本节点

如果为具有副本的集群启用了多可用区,则当主节点发生故障时,主节点将故障转移到某个只读副本。由于在副本节点上异步更新数据,因此可能会因更新副本节点时存在延迟而导致丢失某些数据。有关更多信息,请参阅缓解运行 Redis 时发生的故障