使用分片 - ElastiCache 适用于 Redis 的 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用分片

分区(API/CLI:节点组)是 1 到 6 个 Redis 节点的集合。Redis(已禁用集群模式)集群永远不会有多个分区。使用分片,您可以将大型数据库分成更小、更快、更易于管理的部分,称为数据分片。这可以通过将操作分配到多个单独的部分来提高数据库效率。使用分片可以带来许多好处,包括提高性能、可扩展性和成本效益。

您可以创建具有更多分片和更少副本的集群,每个集群最多可包含 90 个节点。此集群配置的范围可以从 90 个分片和 0 个副本到 15 个分片和 5 个副本,这是允许的最大副本数。集群的数据分配到该集群的各个分片上。如果分片包含多个节点,则该分片实现了一个节点作为读取/写入主节点且其他节点为只读副本节点的复制。

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

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

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

使用 ElastiCache 控制台创建 Redis(已启用集群模式)集群时,需要指定集群中的分片数和分片中的节点数。有关更多信息,请参阅创建 Redis(已启用集群模式)集群(控制台)。如果您使用 ElastiCache API 或 Amazon CLI 创建集群(在 API/CLI 中称为复制组),则可以独立配置分片(API/CLI:节点组)中的节点数量。有关更多信息,请参阅下列内容:

  • API: CreateReplicationGroup

  • CLI:create-replication-group

分片中每个节点的计算、存储和内存规格均相同。该 ElastiCache API 允许您控制分片范围的属性,例如节点数量、安全设置和系统维护时段。

图像:Redis 分片配置。

Redis 分片配置

有关更多信息,请参阅 Redis(已启用集群模式)的离线重新分区和分区重新平衡Redis(已启用集群模式)的在线重新分片和分片重新平衡

查找分区的 ID

您可以使用 Amazon Web Services Management Console、 Amazon CLI 或 ElastiCache API 查找分片的 ID。

使用 Amazon Web Services Management Console

对于 Redis(已禁用集群模式)

Redis(已禁用集群模式)复制组分区 ID 始终为 0001

对于 Redis(已启用集群模式)

以下过程使用查找 Redis(已启用集群模式)的复制组的分片 ID。 Amazon Web Services Management Console

在 Redis(已启用集群模式)复制组中查找分区 ID
  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/

  2. 在导航窗格上,选择 Redis,然后选择要为其查找分区 ID 的 Redis(已启用集群模式)复制组的名称。

  3. Shard Name(分区名称)列中,分区 ID 是分区名称的最后四位数字。

使用 Amazon CLI

要查找 Redis(已禁用集群模式)或 Redis(已启用集群模式)复制组的分片(节点组)ID,请使用describe-replication-groups带有以下可 Amazon CLI 选参数的操作。

  • --replication-group-id – 用来将输出限制为指定复制组的详细信息的可选参数。如果忽略此参数,将返回最多 100 个复制组的详细信息。

此命令将返回 sample-repl-group 的详细信息。

对于 Linux、macOS 或 Unix:

aws elasticache describe-replication-groups \ --replication-group-id sample-repl-group

对于 Windows:

aws elasticache describe-replication-groups ^ --replication-group-id sample-repl-group

该命令的输出类似于此处所示。分片(节点组)ID 在此处突出显示,以便更容易找到它们。

{ "ReplicationGroups": [ { "Status": "available", "Description": "2 shards, 2 nodes (1 + 1 replica)", "NodeGroups": [ { "Status": "available", "Slots": "0-8191", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0001-001" }, { "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0001-002" } ] }, { "Status": "available", "Slots": "8192-16383", "NodeGroupId": "0002", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0002-001" }, { "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0002-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "sample-repl-group.9dcv5r.clustercfg.usw2.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "sample-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "13:00-14:00", "MemberClusters": [ "sample-repl-group-0001-001", "sample-repl-group-0001-002", "sample-repl-group-0002-001", "sample-repl-group-0002-002" ], "CacheNodeType": "cache.m3.medium", "DataTiering": "disabled", "PendingModifiedValues": {} } ] }

要查找 Redis(已禁用集群模式)或 Redis(已启用集群模式)复制组的分片(节点组)ID,请使用describe-replication-groups带有以下可 Amazon CLI 选参数的操作。

  • ReplicationGroupId – 用来将输出限制为指定复制组的详细信息的可选参数。如果忽略此参数,将返回最多 xxx 个复制组的详细信息。

此命令将返回 sample-repl-group 的详细信息。

对于 Linux、macOS 或 Unix:

https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroup &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>