

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

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

您可以使用 Amazon Web Services 管理控制台、Amazon CLI 或 MemoryDB API 动态地增加或减少您的 MemoryDB 集群中的只读副本数量。所有分片的副本数量必须相同。

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

您可以将一个 MemoryDB 集群中每个分片的副本数量最多增加到 5 个。可使用 Amazon Web Services 管理控制台、Amazon CLI 或 MemoryDB API 完成此操作。

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

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

要增加 MemoryDB 集群（控制台）中的副本数量，请参阅 [从集群中添加/移除节点](clusters.deletenode.md)。

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

要增加 MemoryDB 集群中的副本数量，请使用带有以下参数的 `update-cluster` 命令：
+ `--cluster-name` – 必需。确定要在其中增加副本数量的集群。
+ `--replica-configuration` – 必需。允许设置副本数量。若要增加副本数量，请将 `ReplicaCount` 属性设置为您希望在此操作结束时在此分片中所具有的副本数量。

**Example**  
以下示例将集群 `my-cluster` 中的副本数量增加到 2 个。  
对于 Linux、macOS 或 Unix：  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --replica-configuration \
        ReplicaCount=2
```
对于 Windows：  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --replica-configuration ^
        ReplicaCount=2
```

返回以下 JSON 响应：

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 1,
        "ClusterEndpoint": {
            "Address": {{"clustercfg.my-cluster.xxxxx.memorydb.us-east-1.amazonaws.com"}},
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": {{"arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster"}},
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

若要在已更新集群的状态从*更新*变为*可用*后查看其详细信息，请使用以下命令：

对于 Linux、macOS 或 Unix：

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

对于 Windows：

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

返回以下 JSON 响应：

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 1,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-003",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-22T12:59:31.844000-07:00",
                            "Endpoint": {
                                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 3
                }
            ],
            "ClusterEndpoint": {
                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": {{"arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster"}},
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

有关使用 CLI 增加副本数量的更多信息，请参阅* Amazon CLI 命令参考*中的 [update-cluster](https://docs.amazonaws.cn/memorydb/latest/APIReference/API_UpdateCluster.html)。

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

要增加 MemoryDB 分片中的副本数量，请使用带有以下参数的 `UpdateCluster` 操作：
+ `ClusterName` – 必需。确定要在其中增加副本数量的集群。
+ `ReplicaConfiguration` – 必需。允许设置副本数量。若要增加副本数量，请将 `ReplicaCount` 属性设置为您希望在此操作结束时在此分片中所具有的副本数量。

**Example**  
以下示例将集群 `sample-cluster` 中的副本数量增加到 3 个。在完成此示例后，每个分片中将有 3 个副本。无论是带单个分片的 MemoryDB 集群还是带多个分片的 MemoryDB 集群，此数字都适用。  

```
https://memory-db.us-east-1.amazonaws.com/
      ?Action=UpdateCluster      
      &ReplicaConfiguration.ReplicaCount=3
      &ClusterName=sample-cluster
      &Version=2021-01-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20210802T192317Z
      &X-Amz-Credential=<credential>
```

有关使用 API 增加副本数量的更多信息，请参阅 [UpdateCluster](https://docs.amazonaws.cn/memorydb/latest/APIReference/API_UpdateCluster.html)。

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

您可以减少 MemoryDB 集群中的副本数量。您可以将副本数量减少为 0，但如果主节点出现故障，则无法失效转移到副本。

您可以使用 Amazon Web Services 管理控制台、Amazon CLI 或 MemoryDB API 来减少集群中的副本数量。

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

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

要减少 MemoryDB 集群（控制台）中的副本数量，请参阅 [从集群中添加/移除节点](clusters.deletenode.md)。

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

要减少 MemoryDB 集群中的副本数量，请使用带有以下参数的 `update-cluster` 命令：
+ `--cluster-name` – 必需。确定要在其中减少副本数量的集群。
+ `--replica-configuration` – 必需。

  `ReplicaCount` – 设置此属性指定想要的副本节点数量。

**Example**  
以下示例使用 `--replica-configuration` 将集群 `my-cluster` 中的副本数量减少为指定值。  
对于 Linux、macOS 或 Unix：  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --replica-configuration \
        ReplicaCount=1
```
对于 Windows：  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --replica-configuration ^
        ReplicaCount=1 ^
```

返回以下 JSON 响应：

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 1,
        "ClusterEndpoint": {
            "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": {{"arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster"}},
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

若要在已更新集群的状态从*更新*变为*可用*后查看其详细信息，请使用以下命令：

对于 Linux、macOS 或 Unix：

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

对于 Windows：

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

返回以下 JSON 响应：

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 1,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                }
            ],
            "ClusterEndpoint": {
                "Address": {{"clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com"}},
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": {{"arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster"}},
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

有关使用 CLI 减少副本数量的更多信息，请参阅* Amazon CLI 命令参考*中的 [update-cluster](https://docs.amazonaws.cn/cli/latest/reference/memorydb/update-cluster.html)。

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

要减少 MemoryDB 集群中的副本数量，请使用带有以下参数的 `UpdateCluster` 操作：
+ `ClusterName` – 必需。确定要在其中减少副本数量的集群。
+ `ReplicaConfiguration` – 必需。允许设置副本数量。

  `ReplicaCount` – 设置此属性指定想要的副本节点数量。

**Example**  
以下示例使用 `ReplicaCount` 将集群 `sample-cluster` 中的副本数量减少为 1 个。在完成此示例后，每个分片中将有一个副本。无论是带单个分片的 MemoryDB 集群还是带多个分片的 MemoryDB 集群，此数字都适用。  

```
https://memory-db.us-east-1.amazonaws.com/
      ?Action=UpdateCluster    
      &ReplicaConfiguration.ReplicaCount=1
      &ClusterName=sample-cluster
      &Version=2021-01-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20210802T192317Z
      &X-Amz-Credential=<credential>
```

有关使用 API 减少副本数量的更多信息，请参阅 [UpdateCluster](https://docs.amazonaws.cn/memorydb/latest/APIReference/API_UpdateCluster.html)。