使用复制组时的高可用性 - Amazon ElastiCache for Redis

使用复制组时的高可用性

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

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

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

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

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

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

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

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