更改副本数量 - 适用于 Redis 的 Amazon MemoryDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

更改副本数量

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

增加集群中的副本数量

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

使用 Amazon Web Services Management Console

要增加 MemoryDB 集群(控制台)中的副本数量,请参阅 从集群中添加/移除节点

使用 Amazon CLI

要增加 MemoryDB 集群中的副本数量,请使用带有以下参数的 update-cluster 命令:

  • --cluster-name – 必需。确定要在其中增加副本数量的集群。

  • --replica-configuration – 必需。允许设置副本数量。若要增加副本数量,请将 ReplicaCount 属性设置为您希望在此操作结束时在此分片中所具有的副本数量。

以下示例将集群 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

使用 MemoryDB API

要增加 MemoryDB 分片中的副本数量,请使用带有以下参数的 UpdateCluster 操作:

  • ClusterName – 必需。确定要在其中增加副本数量的集群。

  • ReplicaConfiguration – 必需。允许设置副本数量。若要增加副本数量,请将 ReplicaCount 属性设置为您希望在此操作结束时在此分片中所具有的副本数量。

以下示例将集群 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

减少集群中的副本数量

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

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 MemoryDB API 来减少集群中的副本数量。

使用 Amazon Web Services Management Console

要减少 MemoryDB 集群(控制台)中的副本数量,请参阅 从集群中添加/移除节点

使用 Amazon CLI

要减少 MemoryDB 集群中的副本数量,请使用带有以下参数的 update-cluster 命令:

  • --cluster-name – 必需。确定要在其中减少副本数量的集群。

  • --replica-configuration – 必需。

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

以下示例使用 --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

使用 MemoryDB API

要减少 MemoryDB 集群中的副本数量,请使用带有以下参数的 UpdateCluster 操作:

  • ClusterName – 必需。确定要在其中减少副本数量的集群。

  • ReplicaConfiguration – 必需。允许设置副本数量。

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

以下示例使用 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