了解 Redis 复制 - ElastiCache 适用于 Redis 的 Amazon

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

了解 Redis 复制

Redis 通过两种方式实现复制:

  • 各个节点中的所有集群数据包含在单一分片中 – Redis(已禁用集群模式)

  • 数据在最多 500 个分片中进行分区 – Redis(已启用集群模式)

复制组中的每个分片都包含一个读/写主节点和最多 5 个只读副本节点。您可以创建具有更多分片和更少副本的集群,每个集群最多可包含 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(已禁用集群模式)

Redis(已禁用集群模式)集群拥有一个分片,其中包含一个 Redis 节点集合;一个读/写主节点和最多 5 个辅助只读副本节点。每个只读副本保留一个集群主节点数据的副本。可使用异步复制机制使只读副本与主集群同步。应用程序可以从集群中的任何节点进行读取。应用程序只能对主节点进行写入。只读副本增加了读取吞吐量,并在节点发生故障时防止数据丢失。

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

具有一个分片和多个副本节点的 Redis(已禁用集群模式)集群

您可以使用具有副本节点的 Redis(已禁用集群模式)集群扩展针对 ElastiCache 的 Redis 解决方案,以处理读取操作密集的应用程序或是支持同时从同一个集群进行读取的大量客户端。

Redis(已禁用集群模式)集群中的所有节点必须位于同一区域内。

在向集群添加只读副本时,主集群中的所有数据都会复制到新节点。从此之后,只要向主集群写入数据,更改便会异步传播到所有只读副本。

要增强容错能力并减少写入停机时间,请对具有副本的 Redis(已禁用集群模式)集群启用带自动故障转移功能的多可用区。有关更多信息,请参阅利用多可用区最大限度减少 ElastiCache for Redis 中的停机时间

您可以更改 Redis(已禁用集群模式)集群中的节点的角色,在这种情况下,主集群会与一个副本交换角色。您可能会为了优化性能执行此操作。例如,对于具有大量写入活动的 Web 应用程序,您可以选择网络延迟最低的节点。有关更多信息,请参阅将 Redis(已禁用集群模式)复制组的只读副本提升为主节点

Redis(已启用集群模式)

Redis (已启用集群模式)集群由 1 到 500 个分片(API/CLI:节点组)组成。每个分片有一个主节点和最多 5 个只读副本节点。配置的范围可以从 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(启用集群模式)集群中的分片上进行分区。

应用程序使用 Redis(已启用集群模式)集群的配置端点连接集群中的节点。有关更多信息,请参阅查找连接端点


               图像:具有多个分片和副本节点的 Redis(已启用集群模式)集群

具有多个分片和副本节点的 Redis(已启用集群模式)集群

Redis(已启用集群模式)集群中的所有节点必须位于同一区域内。要增强容错能力,您可在该区域内的多个可用区中预配置主副本和只读副本。

目前,Redis(已启用集群模式)中有一些限制。

  • 您无法手动将任何副本节点提升为主节点。