用于 Redis 的 Amazon ElastiCache
ElastiCache for Redis 用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

减少分片中的副本数量

您可以减少 Redis (已启用集群模式)的分片中或 Redis (已禁用集群模式)的复制组中的副本数量:

  • 对于 Redis (已禁用集群模式),如果启用了具有自动故障转移功能的多可用区,则可以将副本数量减少为 1 个;如果未启用,则可以将副本数量减少为 0 个。

  • 对于 Redis (已启用集群模式),您可以将副本数量减少为 0 个。但是,如果您的主节点发生故障,则无法故障转移到副本。

您可以使用 AWS 管理控制台、AWS CLI 或 ElastiCache API 来减少节点组(分片)或复制组中的副本数量。

使用 AWS 管理控制台

以下过程使用控制台减少 Redis (已启用集群模式)复制组中的副本数量。

减少 Redis 分片中的副本数量

  1. 登录 AWS 管理控制台 并通过以下网址打开 ElastiCache 控制台:https://console.amazonaws.cn/elasticache/

  2. 在导航窗格中,选择 Redis,然后选择要从其中删除副本的复制组的名称。

  3. 选中要从其中删除副本的每个分片对应的框。

  4. 选择 Delete replicas (删除副本)

  5. 完成 Delete Replicas from Shards (从分片中删除副本) 页面:

    1. 对于 New number of replicas/shard (新副本/分片数量),输入您希望选定的分片应具有的副本数量。此数字必须大于或等于 1。我们建议每个分片使用至少两个副本作为有效的最小值。

    2. 选择 Delete (删除) 以删除副本,或选择 Cancel (取消) 以取消该操作。

重要

  • 如果未指定要删除的副本节点,ElastiCache for Redis 会自动选择副本节点来进行删除。在此过程中,ElastiCache for Redis 尝试为您的复制组保留多可用区架构,然后保留具有最小复制滞后的副本以及主节点。

  • 无法删除复制组中的主节点。如果指定主节点进行删除,此操作将失败并显示指示已选中主节点进行删除的错误事件。

使用 AWS CLI

要减少 Redis 分片中的副本数量,请使用带有以下参数的 decrease-replica-count 命令:

  • --replication-group-id – 是必需的。确定要在其中减少副本数量的复制组。

  • --apply-immediately--no-apply-immediately – 是必需的。指定是立即减少副本数量 (--apply-immediately) 还是在下一维护时段减少副本数量 (--no-apply-immediately)。当前不支持 --no-apply-immediately

  • --new-replica-count – 可选。指定希望的副本节点数。--new-replica-count 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分片中的副本数量。如果 --new-replica-count 的值不满足此要求,则调用失败。

  • --replicas-to-remove – 可选。包含指定要删除的副本节点的节点 ID 的列表。

  • --replica-configuration – 可选。允许您单独地为每个节点组设置副本和可用区的数量。对于 Redis (已启用集群模式)组(您希望在其中单独地配置每个节点组)使用此参数。

    --replica-configuration 具有三位可选成员:

    • NodeGroupId – 您要配置的节点组的四位数 ID。对于 Redis (已禁用集群模式)复制组,分片 ID 始终为 0001。要查找 Redis (已启用集群模式)节点组(分片)ID,请参阅查找分片 ID

    • NewReplicaCount – 指定希望的副本节点数的可选参数。NewReplicaCount 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分片中的副本数量。如果 NewReplicaCount 的值不满足此要求,则调用失败。

    • PreferredAvailabilityZonesPreferredAvailabilityZone 字符串的列表,指定复制组的节点所在的可用区。PreferredAvailabilityZone 值的数字必须等于 NewReplicaCount 的值再加上 1 以形成主节点。如果忽略此 --replica-configuration 的成员,ElastiCache for Redis 会为每个新副本选择可用区。

重要

您必须包含且只能包含 --new-replica-count--replicas-to-remove--replica-configuration 参数之一。

以下示例使用 --new-replica-count 将复制组 sample-repl-group 中的副本数量减少为 1 个。在完成此示例后,每个节点组中将有一个副本。无论这是带单个节点组的 Redis (已禁用集群模式)组还是带多个节点组的 Redis (已启用集群模式)组,此数字都适用。

对于 Linux, OS X, or Unix:

aws elasticache decrease-replica-count --replication-group-id sample-repl-group \ --new-replica-count 1 \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --new-replica-count 1 ^ --apply-immediately

以下示例通过从节点组中删除两个指定的副本(00010003)来减少复制 sample-repl-group 中的副本数量。

对于 Linux, OS X, or Unix:

aws elasticache decrease-replica-count \ --replication-group-id sample-repl-group \ --replicas-to-remove 0001,0003 \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --replicas-to-remove 0001,0003 \ --apply-immediately

以下示例使用 --replica-configuration 将复制组 sample-repl-group 中的副本数量减少为两个指定节点组指定的值。假定存在多个节点组,则这是一个 Redis (已启用集群模式)复制组。指定可选 PreferredAvailabilityZones 时,所列可用区的数量必须等于 NewReplicaCount 的值再加上 1。此方法适用于由 NodeGroupId 标识的组的主节点。

对于 Linux, OS X, or Unix:

aws elasticache decrease-replica-count \ --replication-group-id sample-repl-group \ --replica-configuration \ NodeGroupId=0001,NewReplicaCount=1,PreferredAvailabilityZones=us-east-1a,us-east-1c \ NodeGroupId=0003,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --replica-configuration ^ NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c ^ NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \ --apply-immediately

有关使用 CLI 减少副本数量的更多信息,请参阅 Amazon ElastiCache 命令行参考 中的 decrease-replica-count

使用 ElastiCache API

要减少 Redis 分片中的副本数量,请使用带有以下参数的 DecreaseReplicaCount 操作:

  • ReplicationGroupId – 是必需的。确定要在其中减少副本数量的复制组。

  • ApplyImmediately – 是必需的。指定是立即减少副本数量 (ApplyImmediately=True) 还是在下一维护时段减少副本数量 (ApplyImmediately=False)。当前不支持 ApplyImmediately=False

  • NewReplicaCount – 可选。指定希望的副本节点数。NewReplicaCount 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分片中的副本数量。如果 --new-replica-count 的值不满足此要求,则调用失败。

  • ReplicasToRemove – 可选。包含指定要删除的副本节点的节点 ID 的列表。

  • ReplicaConfiguration – 可选。包含节点组列表,这些节点组允许您单独地为每个节点组设置副本和可用区的数量。对于 Redis (已启用集群模式)组(您希望在其中单独地配置每个节点组)使用此参数。

    ReplicaConfiguraion 具有三位可选成员:

    • NodeGroupId – 您要配置的节点组的四位数 ID。对于 Redis (已禁用集群模式)复制组,节点组 ID 始终为 0001。要查找 Redis (已启用集群模式)节点组(分片)ID,请参阅查找分片 ID

    • NewReplicaCount – 您希望在此操作结束时此节点组中所具有副本数量。如果启用了具有自动故障转移功能的多可用区,则此值必须小于当前副本数量(最少为 1 个);如果未启用具有自动故障转移功能的多可用区,则此值为 0。如果此值大于或等于节点组中的当前副本数量,则调用失败并返回异常。

    • PreferredAvailabilityZonesPreferredAvailabilityZone 字符串的列表,指定复制组的节点所在的可用区。PreferredAvailabilityZone 值的数字必须等于 NewReplicaCount 的值再加上 1 以形成主节点。如果忽略此 ReplicaConfiguration 的成员,ElastiCache for Redis 会为每个新副本选择可用区。

重要

您必须包含且只能包含 NewReplicaCountReplicasToRemoveReplicaConfiguration 参数之一。

以下示例使用 NewReplicaCount 将复制组 sample-repl-group 中的副本数量减少为 1 个。在完成此示例后,每个节点组中将有一个副本。无论这是带单个节点组的 Redis (已禁用集群模式)组还是带多个节点组的 Redis (已启用集群模式)组,此数字都适用。

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

以下示例通过从节点组中删除两个指定的副本(00010003)来减少复制 sample-repl-group 中的副本数量。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ApplyImmediately=True &ReplicasToRemove.ReplicaToRemove.1=0001 &ReplicasToRemove.ReplicaToRemove.2=0003 &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

以下示例使用 ReplicaConfiguration 将复制组 sample-repl-group 中的副本数量减少为两个指定节点组指定的值。假定存在多个节点组,则这是一个 Redis (已启用集群模式)复制组。指定可选 PreferredAvailabilityZones 时,所列可用区的数量必须等于 NewReplicaCount 的值再加上 1。此方法适用于由 NodeGroupId 标识的组的主节点。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ApplyImmediately=True &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001 &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=1 &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003 &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=2 &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.4=us-east-1c &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

有关使用 API 减少副本数量的更多信息,请参阅 Amazon ElastiCache API Reference 中的 DecreaseReplicaCount