

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

# 修改集群模式
<a name="modify-cluster-mode"></a>

Valkey 或 Redis OSS 是一种分布式内存数据库，支持分片和复制。 ElastiCache Valkey 和 Redis OSS 集群是一种分布式实现，允许跨多个节点对数据进行分区。 ElastiCache 适用于 Redis 的 OSS 集群有两种操作模式：启用集群模式 (CME) 和禁用集群模式 (CMD)。在 CME 中，Valkey 和 Redis OSS 引擎充当具有多个分片和节点的分布式数据库，而在 CMD 中，Valkey 和 Redis OSS 充当单个节点。

从 CMD 迁移到 CME 之前，必须满足以下条件：

**重要**  
集群模式配置只能从“已禁用集群模式”更改为“已启用集群模式”。无法还原此配置。
+ 集群只能在数据库 0 中拥有密钥。
+ 应用程序必须使用能够使用集群协议的 Valkey 或 Redis OSS 客户端，并使用配置端点。
+ Auto-failover 必须在至少有 1 个副本的集群上启用。
+ 迁移所需的最低引擎版本为 Valkey 7.2 及更高版本，或 Redis OSS 7.0 及更高版本。

要从 CMD 迁移到 CME，必须将集群模式配置从“已禁用集群模式”更改为“已启用集群模式”。这是一个两步过程，可确保迁移过程中集群的可用性。

**注意**  
您需要为参数组提供已启用集群的配置，也就是说，cluster-enabled 参数设置为 `yes`。如果您使用的是默认参数组， ElastiCache 对于 Redis，OSS 将自动选择具有支持集群的配置的相应默认参数组。对于 CMD 集群，cluster-enabled 参数值设置为 `no`。当集群移至兼容模式时，作为修改操作的一部分，cluster-enabled 参数值将更新为 `yes`。  
有关更多信息，请参阅 [使用参数组配置引擎 ElastiCache 参数](ParameterGroups.md)。

1. **准备** — 创建一个测试 CME 集群，并确保您的堆栈已准备好使用它。 ElastiCache 适用于 Redis 的 OSS 无法验证你的准备情况。有关更多信息，请参阅 [创建 Valkey 或 Redis OSS 集群](Clusters.Create.md)。

1. 将@@ **现有 CMD 集群配置修改为兼容集群模式** — 在此模式下，将部署单个分片， ElastiCache 对于 Redis，OSS 将作为单个节点运行，也可以作为单个分片集群运行。兼容模式意味着客户端应用程序可以使用任一协议与集群通信。在此模式下，必须重新配置应用程序才能开始使用 Valkey 或 Redis OSS 集群协议和配置端点。要将 Valkey 或 Redis OSS 集群模式更改为“与集群模式兼容”，请执行以下步骤：
**注意**  
在兼容模式下，不允许对集群执行其他修改操作，例如扩缩和引擎版本。此外，在请求中定义集群模式参数时，不能修改参数（不包括`cacheParameterGroupName`）。[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)

   1. 使用 AWS 管理控制台，请参阅[修改复制组](Replication.Modify.md)并将集群模式设置为 “**兼容**”

   1. 使用 API，查看`ClusterMode`参数[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)并将其更新为`compatible`。

   1. 使用 AWS CLI，请参阅[修改复制组并将参数更新](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)为。`cluster-mode` `compatible`

   将 Valkey 或 Redis OSS 集群模式更改为兼容集群模式后，[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)API 将返回适用于 Redis OSS ElastiCache 的集群配置终端节点。集群配置端点是应用程序可以用来连接到集群的单个端点。有关更多信息，请参阅 [在中查找连接端点 ElastiCache](Endpoints.md)。

1. **将集群配置修改为“已启用集群模式”** - 在将集群模式设置为“与集群模式兼容”后，第二步是将集群配置修改为“已启用集群模式”。在此模式下，单个分片正在运行，客户现在可以扩缩其集群或修改其他集群配置。

   要将集群模式更改为已启用，请执行以下步骤：

   开始之前，请确保您的 Valkey 或 Redis OSS 客户端已迁移到使用集群协议，并且集群的配置端点未在使用中。

   1. 使用 AWS 管理控制台，请参阅[修改复制组](Replication.Modify.md)并将集群模式设置为 “**已启用”**。

   1. 使用 API，查看`ClusterMode`参数[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)并将其更新为`enabled`。

   1. 使用 AWS CLI，请参阅[修改复制组并将参数更新](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)为。`cluster-mode` `enabled`

   在将集群模式更改为已启用后，端点将按照 Valkey 或 Redis OSS 集群规范进行配置。[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)API 将返回集群模式参数为，`enabled`以及现在可供应用程序用来连接集群的集群终端节点。

   请注意，一旦集群模式更改为已启用，集群端点就会发生变化。请确保使用新端点更新您的应用程序。

您也可以选择从“与集群模式兼容”恢复为“已禁用集群模式”（CMD）并保留原始配置。

**将集群配置从“与集群模式兼容”修改为“已禁用集群模式”**

1. 使用 AWS 管理控制台，请参阅[修改复制组](Replication.Modify.md)并将集群模式设置为 “**已禁**用”

1. 使用 API，查看`ClusterMode`参数[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)并将其更新为`disabled`。

1. 使用 AWS CLI，请参阅[修改复制组并将参数更新](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)为。`cluster-mode` `disabled`

将集群模式更改为禁用后，[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)API 会将集群模式参数返回为`disabled`。