

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

# 更改副本数量
<a name="increase-decrease-replica-count"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 ElastiCache API 动态地增加或减少 Valkey 或 Redis OSS 复制组中的只读副本数量。如果您的复制组为 Valkey 或 Redis OSS（已启用集群模式）复制组，则可以选择要在其中增加或减少副本数量的分片（节点组）。

要动态更改您的复制组中的副本数量，请从下表中选择符合您情况的操作。


| 要执行的操作 | 对于 Valkey 或 Redis OSS（已启用集群模式） | 对于 Valkey 或 Redis OSS（已禁用集群模式） | 
| --- | --- | --- | 
|  添加副本  |  [增加分区中的副本数量](increase-replica-count.md)  |  [增加分区中的副本数量](increase-replica-count.md) [为 Valkey 或 Redis OSS（已禁用集群模式）添加只读副本](Replication.AddReadReplica.md)  | 
|  删除副本  |  [减少分区中的副本数量](decrease-replica-count.md)  |  [减少分区中的副本数量](decrease-replica-count.md) [为 Valkey 或 Redis OSS（已禁用集群模式）删除只读副本](Replication.RemoveReadReplica.md)  | 

# 增加分区中的副本数量
<a name="increase-replica-count"></a>

您可以增加 Valkey 或 Redis OSS（已启用集群模式）分片或 Valkey 或 Redis OSS（已禁用集群模式）复制组中的副本数量，最多不超过 5 个。您可以使用 AWS 管理控制台、AWS CLI 或 ElastiCache API 执行此操作。

**Topics**
+ [使用 AWS 管理控制台](#increase-replica-count-con)
+ [使用 AWS CLI](#increase-replica-count-cli)
+ [使用 ElastiCache API](#increase-replica-count-api)

## 使用 AWS 管理控制台
<a name="increase-replica-count-con"></a>

以下过程使用控制台增加 Valkey 或 Redis OSS（已启用集群模式）复制组中的副本数量。

**增加分片中的副本数量**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择 **Valkey** 或 **Redis OSS**，然后选择要向其添加副本的复制组的名称。

1. 选中要将副本添加到的每个分片对应的框。

1. 选择 **Add replicas (添加副本)**。

1. 完成 **Add Replicas to Shards (将副本添加到分片)** 页面：
   + 对于 **New number of replicas/shard (新副本/分片数量)**，输入您希望所有选定的分片应具有的副本数量。此值必须大于或造型 **Current Number of Replicas per shard (每个分片的当前副本数量)** 且小于或等于 5。我们建议使用至少两个副本作为有效的最小值。
   + 对于 **Availability Zones（可用区）**，选择 **No preference（无首选项）**以让 ElastiCache 为每个新副本选择可用区，或者选择 **Specify Availability Zones（指定可用区）**以为每个新副本选择可用区。

     如果选择 **Specify Availability Zones (指定可用区)**，对于每个新副本，请使用列表指定可用区。

1. 选择 **Add (添加)** 以添加副本，或选择 **Cancel (取消)** 以取消该操作。

## 使用 AWS CLI
<a name="increase-replica-count-cli"></a>

要增加 Valkey 或 Redis OSS 分片中的副本数量，请使用带有以下参数的 `increase-replica-count` 命令：
+ `--replication-group-id` – 必需。确定要在其中增加副本数量的复制组。
+ `--apply-immediately` 或 `--no-apply-immediately` – 必需。指定是立即增加副本数量 (`--apply-immediately`) 还是在下一维护时段增加副本数量 (`--no-apply-immediately`)。当前不支持 `--no-apply-immediately`。
+ `--new-replica-count` – 可选。指定完成时所希望的副本节点数量（最多 5 个）。对其中仅有一个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组或您希望其中的所有节点组均有相同副本数量的 Valkey 或 Redis OSS（已启用集群模式）复制组使用此参数。如果此值小于或等于节点组中的当前副本数量，则调用失败并返回异常。
+ `--replica-configuration` – 可选。允许您单独地为每个节点组设置副本和可用区的数量。对您希望单独配置其中每个节点组的 Valkey 或 Redis OSS（已启用集群模式）组使用此参数。

  `--replica-configuration` 具有三位可选成员：
  + `NodeGroupId` – 您要配置的节点组的四位数 ID。对于 Valkey 或 Redis OSS（已禁用集群模式）复制组，分片 ID 始终为 `0001`。若要查找 Valkey 或 Redis OSS（已启用集群模式）节点组（分片）ID，请参阅 [查找分区的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` – 您希望在此操作结束时此节点组中所具有的副本数量。此值必须大于当前副本数量，最多为 5 个。如果此值小于或等于节点组中的当前副本数量，则调用失败并返回异常。
  + `PreferredAvailabilityZones` – `PreferredAvailabilityZone` 字符串的列表，指定复制组的节点即将位于的可用区。`PreferredAvailabilityZone` 值的数字必须等于 `NewReplicaCount` 的值再加上 1 以形成主节点。如果忽略 `--replica-configuration` 的此成员，ElastiCache for Redis OSS 会为每个新副本选择可用区。

**重要**  
您必须在调用中包含 `--new-replica-count` 或 `--replica-configuration` 参数，但不能同时包含这两项。

**Example**  
以下示例将复制组 `sample-repl-group` 中的副本数量增加到 3 个。在完成此示例后，每个节点组中将有 3 个副本。无论是具有单个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，还是具多个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，此数字都适用。  
对于 Linux、macOS 或 Unix：  

```
aws elasticache increase-replica-count \
    --replication-group-id sample-repl-group \
    --new-replica-count 3 \
    --apply-immediately
```
对于 Windows：  

```
aws elasticache increase-replica-count ^
    --replication-group-id sample-repl-group ^
    --new-replica-count 3 ^
    --apply-immediately
```
以下示例将复制组 `sample-repl-group` 中的副本数量增加到两个指定节点组指定的值。假定存在多个节点组，则这是一个 Valkey 或 Redis OSS（已启用集群模式）复制组。指定可选 `PreferredAvailabilityZones` 时，所列可用区的数量必须等于 `NewReplicaCount` 的值再加上 1。此方法适用于由 `NodeGroupId` 标识的组的主节点。  
对于 Linux、macOS 或 Unix：  

```
aws elasticache increase-replica-count \
    --replication-group-id sample-repl-group \
    --replica-configuration \
        NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c,us-east-1b \
        NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c,us-east-1c \
    --apply-immediately
```
对于 Windows：  

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

有关使用 CLI 增加副本数量的更多信息，请参阅 *Amazon ElastiCache 命令行参考* 中的 [increase-replica-count](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html)。

## 使用 ElastiCache API
<a name="increase-replica-count-api"></a>

要增加 Valkey 或 Redis OSS 分片中的副本数量，请使用带有以下参数的 `IncreaseReplicaCount` 操作：
+ `ReplicationGroupId` – 必需。确定要在其中增加副本数量的复制组。
+ `ApplyImmediately` – 必需。指定是立即增加副本数量 (`ApplyImmediately=True`) 还是在下一维护时段增加副本数量 (`ApplyImmediately=False`)。当前不支持 `ApplyImmediately=False`。
+ `NewReplicaCount` – 可选。指定完成时所希望的副本节点数量（最多 5 个）。对其中仅有一个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组或您希望其中的所有节点组均有相同副本数量的 Valkey 或 Redis OSS（已启用集群模式）复制组使用此参数。如果此值小于或等于节点组中的当前副本数量，则调用失败并返回异常。
+ `ReplicaConfiguration` – 可选。允许您单独地为每个节点组设置副本和可用区的数量。对您希望单独配置其中每个节点组的 Valkey 或 Redis OSS（已启用集群模式）组使用此参数。

  `ReplicaConfiguraion` 具有三位可选成员：
  + `NodeGroupId` – 您要配置的节点组的四位数 ID。对于 Valkey 或 Redis OSS（已禁用集群模式）复制组，节点组（分片）ID 始终为 `0001`。若要查找 Valkey 或 Redis OSS（已启用集群模式）节点组（分片）ID，请参阅 [查找分区的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` – 您希望在此操作结束时此节点组中所具有的副本数量。此值必须大于当前副本数量，且最多为 5 个。如果此值小于或等于节点组中的当前副本数量，则调用失败并返回异常。
  + `PreferredAvailabilityZones` – `PreferredAvailabilityZone` 字符串的列表，指定复制组的节点即将位于的可用区。`PreferredAvailabilityZone` 值的数字必须等于 `NewReplicaCount` 的值再加上 1 以形成主节点。如果忽略 `ReplicaConfiguration` 的此成员，ElastiCache for Redis OSS 会为每个新副本选择可用区。

**重要**  
您必须在调用中包含 `NewReplicaCount` 或 `ReplicaConfiguration` 参数，但不能同时包含这两项。

**Example**  
以下示例将复制组 `sample-repl-group` 中的副本数量增加到 3 个。在完成此示例后，每个节点组中将有 3 个副本。无论是具有单个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，还是具多个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，此数字都适用。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=True
      &NewReplicaCount=3
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下示例将复制组 `sample-repl-group` 中的副本数量增加到两个指定节点组指定的值。假定存在多个节点组，则这是一个 Valkey 或 Redis OSS（已启用集群模式）复制组。指定可选 `PreferredAvailabilityZones` 时，所列可用区的数量必须等于 `NewReplicaCount` 的值再加上 1。此方法适用于由 `NodeGroupId` 标识的组的主节点。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=True
      &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001
      &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=2
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.3=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003
      &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=3
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.3=us-east-1c
      &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 参考*中的 [IncreaseReplicaCount](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)。

# 减少分区中的副本数量
<a name="decrease-replica-count"></a>

您可以减少 Valkey 或 Redis OSS（已启用集群模式）分片中的副本数量，或 Valkey 或 Redis OSS（已禁用集群模式）复制组中的副本数量：
+ 对于 Valkey 或 Redis OSS（已禁用集群模式），如果启用了多可用区，则可以将副本数量减少到 1 个；如果未启用，则可以将副本数量减少到 0。
+ 对于 Valkey 或 Redis OSS（已启用集群模式），您可以将副本数量减少到 0。但是，如果您的主节点发生故障，则无法故障转移到副本。

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

**Topics**
+ [使用 AWS 管理控制台](#decrease-replica-count-con)
+ [使用 AWS CLI](#decrease-replica-count-cli)
+ [使用 ElastiCache API](#decrease-replica-count-api)

## 使用 AWS 管理控制台
<a name="decrease-replica-count-con"></a>

以下过程使用控制台减少 Valkey 或 Redis OSS（已启用集群模式）复制组中的副本数量。

**减少 Valkey 或 Redis OSS 分片中的副本数量**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择 **Valkey** 或 **Redis OSS**，然后选择要从其中删除副本的复制组的名称。

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

1. 选择 **Delete replicas (删除副本)**。

1. 完成 **Delete Replicas from Shards (从分片中删除副本)** 页面：

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

   1. 选择 **Delete (删除)** 以删除副本，或选择 **Cancel (取消)** 以取消该操作。

**重要**  
如果您未指定要删除的副本节点，ElastiCache for Redis OSS 会自动选择副本节点来进行删除。在此过程中，ElastiCache for Redis OSS 会尝试为您的复制组保留多可用区架构，然后保留具有最小复制滞后的副本以及主节点。
无法删除复制组中的主节点。如果指定主节点进行删除，此操作会失败并显示指示已选中主节点进行删除的错误事件。

## 使用 AWS CLI
<a name="decrease-replica-count-cli"></a>

要减少 Valkey 或 Redis OSS 分片中的副本数量，请使用带有以下参数的 `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` 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值，请参阅[减少分区中的副本数量](#decrease-replica-count)。如果 `--new-replica-count` 的值不满足此要求，则调用失败。
+ `--replicas-to-remove` – 可选。包含指定要删除的副本节点的节点 ID 的列表。
+ `--replica-configuration` – 可选。允许您单独地为每个节点组设置副本和可用区的数量。对您希望单独配置其中每个节点组的 Valkey 或 Redis OSS（已启用集群模式）组使用此参数。

  `--replica-configuration` 具有三位可选成员：
  + `NodeGroupId` – 您要配置的节点组的四位数 ID。对于 Valkey 或 Redis OSS（已禁用集群模式）复制组，分片 ID 始终为 `0001`。若要查找 Valkey 或 Redis OSS（已启用集群模式）节点组（分片）ID，请参阅 [查找分区的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` – 指定希望的副本节点数的可选参数。`NewReplicaCount` 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值，请参阅[减少分区中的副本数量](#decrease-replica-count)。如果 `NewReplicaCount` 的值不满足此要求，则调用失败。
  + `PreferredAvailabilityZones` – `PreferredAvailabilityZone` 字符串的列表，指定复制组的节点所在的可用区。`PreferredAvailabilityZone` 值的数字必须等于 `NewReplicaCount` 的值再加上 1 以形成主节点。如果忽略 `--replica-configuration` 的此成员，ElastiCache for Redis OSS 会为每个新副本选择可用区。

**重要**  
您必须包含且只能包含 `--new-replica-count`、`--replicas-to-remove` 或 `--replica-configuration` 参数之一。

**Example**  
以下示例使用 `--new-replica-count` 将复制组 `sample-repl-group` 中的副本数量减少为 1 个。在完成此示例后，每个节点组中将有一个副本。无论是具有单个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，还是具多个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，此数字都适用。  
对于 Linux、macOS 或 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
```
以下示例通过从节点组中删除两个指定的副本（`sample-repl-group` 和 `0001`）来减少复制 `0003` 中的副本数量。  
对于 Linux、macOS 或 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` 中的副本数量减少为两个指定节点组指定的值。假定存在多个节点组，则这是一个 Valkey 或 Redis OSS（已启用集群模式）复制组。指定可选 `PreferredAvailabilityZones` 时，所列可用区的数量必须等于 `NewReplicaCount` 的值再加上 1。此方法适用于由 `NodeGroupId` 标识的组的主节点。  
对于 Linux、macOS 或 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](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html)。

## 使用 ElastiCache API
<a name="decrease-replica-count-api"></a>

要减少 Valkey 或 Redis OSS 分片中的副本数量，请使用带有以下参数的 `DecreaseReplicaCount` 操作：
+ `ReplicationGroupId` – 必需。确定要在其中减少副本数量的复制组。
+ `ApplyImmediately` – 必需。指定是立即减少副本数量（`ApplyImmediately=True`）还是在下一维护时段减少副本数量（`ApplyImmediately=False`）。当前不支持 `ApplyImmediately=False`。
+ `NewReplicaCount` – 可选。指定希望的副本节点数。`NewReplicaCount` 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值，请参阅[减少分区中的副本数量](#decrease-replica-count)。如果 `--new-replica-count` 的值不满足此要求，则调用失败。
+ `ReplicasToRemove` – 可选。包含指定要删除的副本节点的节点 ID 的列表。
+ `ReplicaConfiguration` – 可选。包含节点组列表，这些节点组允许您单独地为每个节点组设置副本和可用区的数量。对您希望单独配置其中每个节点组的 Valkey 或 Redis OSS（已启用集群模式）组使用此参数。

  `ReplicaConfiguraion` 具有三位可选成员：
  + `NodeGroupId` – 您要配置的节点组的四位数 ID。对于 Valkey 或 Redis OSS（已禁用集群模式）复制组，节点组 ID 始终为 `0001`。若要查找 Valkey 或 Redis OSS（已启用集群模式）节点组（分片）ID，请参阅 [查找分区的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` – 您希望在此操作结束时此节点组中所具有的副本数量。如果启用了多可用区，则此值必须小于当前副本数量（最少为 1 个）；如果未启用具有自动故障转移功能的多可用区，则此值为 0。如果此值大于或等于节点组中的当前副本数量，则调用失败并返回异常。
  + `PreferredAvailabilityZones` – `PreferredAvailabilityZone` 字符串的列表，指定复制组的节点所在的可用区。`PreferredAvailabilityZone` 值的数字必须等于 `NewReplicaCount` 的值再加上 1 以形成主节点。如果忽略 `ReplicaConfiguration` 的此成员，ElastiCache for Redis OSS 会为每个新副本选择可用区。

**重要**  
您必须包含且只能包含 `NewReplicaCount`、`ReplicasToRemove` 或 `ReplicaConfiguration` 参数之一。

**Example**  
以下示例使用 `NewReplicaCount` 将复制组 `sample-repl-group` 中的副本数量减少为 1 个。在完成此示例后，每个节点组中将有一个副本。无论是具有单个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，还是具多个节点组的 Valkey 或 Redis OSS（已禁用集群模式）复制组，此数字都适用。  

```
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>
```
以下示例通过从节点组中删除两个指定的副本（`sample-repl-group` 和 `0001`）来减少复制 `0003` 中的副本数量。  

```
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` 中的副本数量减少为两个指定节点组指定的值。假定存在多个节点组，则这是一个 Valkey 或 Redis OSS（已启用集群模式）复制组。指定可选 `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 参考*中的 [DecreaseReplicaCount](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)。

# 为 Valkey 或 Redis OSS（已禁用集群模式）添加只读副本
<a name="Replication.AddReadReplica"></a>

以下主题中的信息仅适用于 Valkey 或 Redis OSS（已禁用集群模式）复制组。

随着您的读取流量的增加，您可能需要跨多个节点分布这些读取操作，并且减少任一节点上的读取压力。在本主题中，您可以了解如何向 Valkey 或 Redis OSS（已禁用集群模式）集群添加只读副本。

Valkey 或 Redis OSS（已禁用集群模式）复制组最多可以有五个只读副本。如果您尝试向已有 5 个只读副本的复制组添加只读副本，则此操作将失败。

有关向 Valkey 或 Redis OSS（已启用集群模式）复制组添加副本的信息，请参阅以下内容：
+ [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)
+ [增加分区中的副本数量](increase-replica-count.md)

您可以使用 ElastiCache 控制台、AWS CLI 或 ElastiCache API 向 Valkey 或 Redis OSS（已禁用集群模式）集群添加只读副本。

**相关主题**
+ [向 ElastiCache 集群添加节点](Clusters.AddNode.md)
+ [向复制组添加只读副本 (AWS CLI)](#Replication.AddReadReplica.CLI)
+ [使用 API 向复制组添加只读副本](#Replication.AddReadReplica.API)

## 向复制组添加只读副本 (AWS CLI)
<a name="Replication.AddReadReplica.CLI"></a>

要向 Valkey 或 Redis OSS（已禁用集群模式）复制组添加只读副本，请使用 AWS CLI `create-cache-cluster` 命令，其中参数 `--replication-group-id` 指定要向其添加集群（节点）的复制组。

以下示例创建集群 `my-read replica` 并将其添加到复制组 `my-replication-group`。该只读副本的节点类型、参数组、安全组、维护时段及其他设置与 `my-replication-group` 中的其他节点的相同。

对于 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
      --cache-cluster-id my-read-replica \
      --replication-group-id my-replication-group
```

对于 Windows：

```
aws elasticache create-cache-cluster ^
      --cache-cluster-id my-read-replica ^
      --replication-group-id my-replication-group
```

有关使用 CLI 添加只读副本的更多信息，请参阅 *Amazon ElastiCache 命令行参考*中的 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html)。

## 使用 API 向复制组添加只读副本
<a name="Replication.AddReadReplica.API"></a>

要向 Valkey 或 Redis OSS（已禁用集群模式）复制组添加只读副本，请使用 ElastiCache `CreateCacheCluster` 操作，其中参数 `ReplicationGroupId` 指定要向其添加集群（节点）的复制组。

以下示例创建集群 `myReadReplica` 并将其添加到复制组 `myReplicationGroup`。该只读副本的节点类型、参数组、安全组、维护时段及其他设置与 `myReplicationGroup` 中的其他节点的相同。

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=CreateCacheCluster
      &CacheClusterId=myReadReplica
      &ReplicationGroupId=myReplicationGroup
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```

有关使用 API 添加只读副本的更多信息，请参阅 *Amazon ElastiCache API 参考*中的 [CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)。

# 为 Valkey 或 Redis OSS（已禁用集群模式）删除只读副本
<a name="Replication.RemoveReadReplica"></a>

以下主题中的信息仅适用于 Valkey 或 Redis OSS（已禁用集群模式）复制组。

由于 Valkey 或 Redis OSS 复制组上的读取流量是不断变化的，您可能需要添加或移除只读副本。从 复制组中移除节点的过程与删除集群的过程一样，但存在一些限制：
+ 您无法从复制组中移除主集群。如果要删除主集群，请执行以下操作：

  1. 将只读副本提升为主集群。有关将只读副本提升为主集群的更多信息，请参阅[将 Valkey 或 Redis OSS（已禁用集群模式）复制组的只读副本提升为主节点](Replication.PromoteReplica.md)。

  1. 删除旧的主集群。有关此方法的限制，请参阅下一要点。
+ 如果在复制组上启用了多可用区，则无法从复制组中移除上一个只读副本。在此情况下，请执行以下操作：

  1. 通过禁用多可用区来修改复制组。有关更多信息，请参阅 [修改复制组](Replication.Modify.md)。

  1. 删除只读副本。

您可以使用 ElastiCache 控制台、AWS CLI for ElastiCache 或 ElastiCache API 删除 Valkey 或 Redis OSS（已禁用集群模式）复制组中的只读副本。

有关从 Valkey 或 Redis OSS 复制组中删除集群的说明，请参阅以下内容：
+ [使用AWS 管理控制台](Clusters.Delete.md#Clusters.Delete.CON)
+ [使用AWS CLI删除集 ElastiCache 群](Clusters.Delete.md#Clusters.Delete.CLI)
+ [使用 ElastiCache API](Clusters.Delete.md#Clusters.Delete.API)
+ [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)
+ [减少分区中的副本数量](decrease-replica-count.md)