

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

Valkey 和 Redis OSS 是分散式記憶體內資料庫，可支援碎片和複寫。ElastiCache Valkey 和 Redis OSS 叢集是分散式實作，允許跨多個節點分割資料。ElastiCache for Redis OSS 叢集有兩種操作模式：啟用叢集模式 (CME) 和停用叢集模式 (CMD)。在 CME 中，Valkey 和 Redis OSS 引擎可做為具有多個碎片和節點的分散式資料庫，而在 CMD 中，Valkey 和 Redis OSS 可做為單一節點。

在從 CMD 遷移至 CME 之前，必須滿足下列條件：

**重要**  
叢集模式組態只能從停用叢集模式變更為啟用叢集模式。還原此組態是不可能的。
+ 叢集可能只有資料庫 0 中的金鑰。
+ 應用程式必須使用能夠使用叢集通訊協定並使用組態端點的 Valkey 或 Redis OSS 用戶端。
+ 必須在至少有 1 個複本的叢集上啟用自動容錯移轉。
+ 遷移所需的最低引擎版本為 Valkey 7.2 及更高版本，或 Redis OSS 7.0 及更高版本。

如要從 CMD 遷移至 CME，叢集模式組態必須從停用叢集模式變更為啟用叢集模式。這是一個兩步驟的程序，可確保遷移程序期間的叢集可用性。

**注意**  
您需要提供具有啟用叢集組態的參數群組，也就是說，已啟用叢集的參數設為 `yes`。如果您使用的是預設參數群組，ElastiCache for Redis OSS 會自動挑選具有啟用叢集組態的對應預設參數群組。已為 CMD 叢集將啟用叢集的參數值設為 `no`。當叢集移至相容模式時，做為修改動作的一部分，啟用叢集的參數值會隨之更新為 `yes`。  
如需詳細資訊，請參閱[使用 ElastiCache 參數群組設定引擎參數](ParameterGroups.md)

1. **準備** – 建立一個測試 CME 叢集，並確保您的堆疊已準備好一起運作。ElastiCache for Redis OSS 無法驗證您的準備狀態。如需詳細資訊，請參閱[為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)。

1. 將**現有的 CMD 叢集組態修改為叢集模式相容** – 在此模式中，將部署單一碎片，ElastiCache for Redis OSS 將做為單一節點運作，也可以做為單一碎片叢集運作。相容模式表示用戶端應用程式可以使用任一通訊協定與叢集進行通訊。在此模式中，應用程式必須重新設定為開始使用 Valkey 或 Redis OSS 叢集通訊協定和組態端點。若要將 Valkey 或 Redis OSS 叢集模式變更為叢集模式相容，請遵循下列步驟：
**注意**  
在相容模式下，叢集不允許使用其他修改操作，例如擴展和引擎版本。此外，在 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 要求中定義叢集模式參數時，無法修改參數 (`cacheParameterGroupName` 除外)。

   1. 使用 AWS 管理主控台，請參閱 [修改複寫群組](Replication.Modify.md) 並將叢集模式設定為**相容**

   1. 使用 API，請參閱 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 並將 `ClusterMode` 參數更新為 `compatible`。

   1. 使用 AWS CLI，請參閱 [modify-replication-group](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 會傳回 ElastiCache for Redis OSS 叢集組態端點。叢集配置端點是單一端點，可供應用程式用來連線至叢集。如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

1. **將叢集組態修改為啟用叢集模式** – 一旦叢集模式設為叢集模式相容之後，第二個步驟即是將叢集組態修改為啟用叢集模式。在此模式下，單一碎片正在執行，客戶現在可以擴展其叢集或修改其他叢集組態。

   若要將叢集模式變更為已啟用，請依照下列步驟進行：

   開始之前，請確定您的 Valkey 或 Redis OSS 用戶端已使用叢集通訊協定遷移至 ，且叢集的組態端點未使用。

   1. 使用 AWS 管理主控台，請參閱 [修改複寫群組](Replication.Modify.md) 並將叢集模式設定為**已啟用**。

   1. 使用 API，請參閱 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 並將 `ClusterMode` 參數更新為 `enabled`。

   1. 使用 AWS CLI，請參閱 [modify-replication-group](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，請參閱 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 並將 `ClusterMode` 參數更新為 `disabled`。

1. 使用 AWS CLI，請參閱 [modify-replication-group](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` 的形式傳回。