

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

# 在 ElastiCache 中管理您的節點型叢集
<a name="manage-self-designed-cluster"></a>

ElastiCache 提供兩種部署選項：無伺服器快取和節點型叢集。每個 都有自己的功能和需求。

本節包含的主題可協助您管理以節點為基礎的叢集。

**注意**  
這些主題不適用 ElastiCache Serverless。

**Topics**
+ [Auto Scaling Valkey 和 Redis OSS 叢集](AutoScaling.md)
+ [修改叢集模式](modify-cluster-mode.md)
+ [使用全域資料存放區跨AWS區域複寫](Redis-Global-Datastore.md)
+ [使用複寫群組的高可用性](Replication.md)
+ [管理 ElastiCache 叢集維護](maintenance-window.md)
+ [使用 ElastiCache 參數群組設定引擎參數](ParameterGroups.md)

# Auto Scaling Valkey 和 Redis OSS 叢集
<a name="AutoScaling"></a>

## 先決條件
<a name="AutoScaling-Prerequisites"></a>

ElastiCache Auto Scaling 僅限於下列項目：
+ 執行 Valkey 7.2 以上版本或執行 Redis OSS 6.0 以上版本的 Valkey 或 Redis OSS （啟用叢集模式） 叢集
+ 執行 Valkey 7.2 以上版本或執行 Redis OSS 7.0.7 以上版本的資料分層 （啟用叢集模式） 叢集 
+ 執行個體大小 - Large、XLarge、2XLarge
+ 執行個體類型系列 - R7g、R6g、R6gd、R5、M7g、M6g、M5、C7gn
+ 全域資料存放區、Outpost 或本機區域中執行的叢集不支援 ElastiCache 中的 Auto Scaling。

## 使用 ElastiCache Auto Scaling 搭配 Valkey 或 Redis OSS 自動管理容量
<a name="AutoScaling-Managing"></a>

使用 Valkey 或 Redis OSS 進行 ElastiCache 自動擴展是自動增加或減少 ElastiCache 服務中所需碎片或複本的能力。ElastiCache 利用 Application Auto Scaling 服務來提供此功能。如需詳細資訊，請參閱 [Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/what-is-application-auto-scaling.html)。若要使用自動調整規模功能，您可以定義和套用規模調整政策，這類政策會使用 CloudWatch 指標和您指派的目標值。ElastiCache 自動擴展使用 政策來增加或減少執行個體數量，以回應實際工作負載。

您可以使用 根據預先定義的指標AWS 管理主控台來套用擴展政策。`predefined metric` 是在列舉中定義，如此您就可以在程式碼中依名稱指定指標，或是在AWS 管理主控台中使用指標。使用AWS 管理主控台時無法選擇自訂指標。或者，您可以使用AWS CLI或 Application Auto Scaling API，根據預先定義的或自訂指標來套用擴展政策。

ElastiCache for Valkey 和 Redis OSS 支援下列維度的擴展：
+ **碎片** - 自動新增/移除叢集中的碎片，類似於手動線上重新分片。在此情況下，ElastiCache 自動擴展會代表您觸發擴展。
+ **複本** - 自動新增/移除叢集中的複本，類似於手動增加/減少複本作業。適用於 Valkey 和 Redis OSS 的 ElastiCache 自動擴展會在叢集中的所有碎片中均勻地新增/移除複本。

ElastiCache for Valkey 和 Redis OSS 支援下列類型的自動擴展政策：
+ [目標追蹤擴展政策](AutoScaling-Scaling-Policies-Target.md) - 根據特定指標的目標值，增加或減少服務執行的碎片/複本數。這與您運用電熱器維持家中溫度的方式很類似。您只需選取溫度，電熱器會自行執行其餘操作。
+ [ 應用程式的排程擴展。 ](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html)– ElastiCache for Valkey 和 Redis OSS 自動擴展可增加或減少服務根據日期和時間執行的碎片/複本數量。

![\[ElastiCache for Valkey 和 Redis OSS 的自動擴展影像\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Auto-scaling.png)


下列步驟摘要說明 ElastiCache for Valkey 和 Redis OSS 自動擴展程序，如上圖所示：

1. 您可以為複寫群組建立 ElastiCache 自動擴展政策。

1. ElastiCache 自動擴展會代表您建立一對 CloudWatch 警示。每對指標皆代表指標的上限與下限。當叢集的實際使用率持續一段時間偏離您的目標使用率時，就會觸發這些 CloudWatch 警示。您可以在主控台中檢視警示。

1. 如果設定的指標值在特定時間長度內超過您的目標使用率 （或低於目標），CloudWatch 會觸發警示，叫用自動擴展來評估您的擴展政策。

1. ElastiCache 自動擴展會發出修改請求來調整叢集容量。

1. ElastiCache 會處理修改請求，動態增加 （或減少） 叢集碎片/複本容量，使其接近您的目標使用率。

 若要了解 ElastiCache Auto Scaling 的運作方式，假設您有名為 的叢集`UsersCluster`。針對 `UsersCluster` 監控 CloudWatch 指標，可判斷叢集在流量達到峰值時需要的最大碎片數，以及流量達到最低點時叢集需要的最小碎片數。您也可以為 `UsersCluster` 叢集決定 CPU 使用率的目標值。ElastiCache Auto Scaling 使用其目標追蹤演算法，以確保 的佈建碎片`UsersCluster`會視需要調整，讓使用率保持在或接近目標值。

**注意**  
規模調整程序可能需要大量時間，且需要額外的叢集資源用於重新平衡碎片。ElastiCache Auto Scaling 只有在實際工作負載持續幾分鐘保持升高 （或降低） 時，才會修改資源設定。自動擴展目標追蹤演算法會長期嘗試將目標使用率保持在或接近您選擇的值。

# Auto Scaling 政策
<a name="AutoScaling-Policies"></a>

擴展政策具有下列元件：
+ 目標指標 – ElastiCache for Valkey 和 Redis OSS Auto Scaling 用來判斷擴展時間和擴展量的 CloudWatch 指標。
+ 最大和最小容量 - 進行擴展的碎片或複本數量下限與上限。
**重要**  
建立 Auto Scaling 政策時，如果目前容量高於設定的容量上限，政策建立期間會縮縮減至 MaxCapacity 以內。同樣地，如果目前容量低於設定的容量下限，則會擴充至 MinCapacity。
+ 冷卻時間 - 完成規模縮減或規模擴展活動後，可以開始進行另一個水平擴展活動之前需等待的時間長度 (秒)。
+ 服務連結角色 – 連結至特定 AWS 服務的 AWS Identity and Access Management (IAM) 角色。服務連結角色包含服務代表您呼叫其他 AWS 服務所需的所有許可。ElastiCache Auto Scaling 會自動`AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG`為您產生此角色 。
+ 啟用或停用規模縮減活動 - 為政策啟用或停用規模縮減活動的功能。

**Topics**
+ [Auto Scaling 的目標指標](#AutoScaling-TargetMetric)
+ [容量下限和上限](#AutoScaling-MinMax)
+ [冷卻時間](#AutoScaling-Cooldown)
+ [啟用或停用規模縮減活動](#AutoScaling-enable-disable-scale-in)

## Auto Scaling 的目標指標
<a name="AutoScaling-TargetMetric"></a>

在這種類型的政策中，會在目標追蹤規模調整政策的設定中指定預先定義的或自訂的指標以及指標的目標值。ElastiCache for Valkey 和 Redis OSS Auto Scaling 會建立和管理觸發擴展政策的 CloudWatch 警示，並根據指標和目標值計算擴展調整。規模調整政策會視需要新增或移除碎片/複本，讓指標保持在等於或接近指定目標值。除了讓指標保持在接近目標值之外，目標追蹤規模調整政策也會配合因為變更工作負載所造成的指標波動而進行調整。這樣的政策也能將資料庫叢集可用碎片/複本數量的快速波動減到最低。

例如，想想看當規模調整政策使用預先定義的平均 `ElastiCachePrimaryEngineCPUUtilization` 指標時的情況。這個政策可以讓 CPU 使用率維持在 (或接近) 指定的使用率百分比，像是百分之 70。

**注意**  
在每個叢集上，您只能為每一個目標指標建立一個 Auto Scaling 政策。

## 容量下限和上限
<a name="AutoScaling-MinMax"></a>

**碎片**

您可以指定 ElastiCache for Valkey 和 Redis OSS 自動擴展可擴展的碎片數量上限。此值必須小於或等於 250，而下限為 1。您也可以指定要由自動擴展管理的碎片數量下限。此值下限為 1，而且必須小於或等於指定的碎片數量上限值 250。

**複本**

您可以指定 ElastiCache for Valkey 和 Redis OSS 自動擴展所管理的複本數量上限。此值必須等於或大於 5。您也可以指定要由自動擴展管理的複本數量下限。此值下限為 1，而且必須小於或等於指定的複本數量上限值 5。

若要判斷一般流量所需的碎片/複本數量上限和下限，請使用預期的傳輸流量來傳送到您的模型，以測試您的 Auto Scaling 組態設定。

**注意**  
ElastiCache 自動擴展政策會增加叢集容量，直到達到您定義的大小上限，或直到套用服務限制為止。若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

**重要**  
在沒有流量時縮減規模。如果變體的流量變成零，ElastiCache 會自動縮減至指定的執行個體數量下限。

## 冷卻時間
<a name="AutoScaling-Cooldown"></a>

藉由新增會影響調整叢集規模的冷卻時間，您可以調整目標追蹤擴展政策的回應能力。冷卻時間會封鎖後續的擴展或縮減請求，直到冷卻時間到期。這可減緩 ElastiCache for Valkey 和 Redis OSS 叢集中縮減請求的碎片/複本刪除速度，以及縮減請求的碎片/複本建立速度。您可以指定下列其中一種冷卻時間：
+ 縮減活動可減少叢集中的碎片/複本數量。規模縮減冷卻時間會指定在規模縮減動作完成之後，另一個規模縮減動作可以再開始執行之前的等待時間長度 (秒)。
+ 橫向擴展活動會增加叢集中的碎片/複本數量。橫向擴展冷卻時間會指定在橫向擴展動作完成之後，可以再開始執行另一個橫向擴展動作之前的等待時間長度 (秒)。

若未指定規模縮減或水平擴展的冷卻時間，則水平擴展的預設值是 600 秒，規模縮減為 900 秒。

## 啟用或停用規模縮減活動
<a name="AutoScaling-enable-disable-scale-in"></a>

您可以啟用或停用政策的規模縮減動作。啟用規模縮減活動可讓規模調整政策刪除碎片/複本。規模縮減動作啟用時，規模調整政策中的規模縮減冷卻時間會套用至規模縮減動作。停用規模縮減活動可防止規模調整政策刪除碎片/複本。

**注意**  
橫向擴展活動一律會啟用，以便擴展政策可以視需要建立 ElastiCache 碎片或複本。

## Auto Scaling 所需的 IAM 許可
<a name="AutoScaling-IAM-permissions"></a>

ElastiCache for Valkey 和 Redis OSS Auto Scaling 可透過結合 ElastiCache、CloudWatch 和 Application Auto Scaling APIs 來實現。使用 ElastiCache 建立和更新叢集、使用 CloudWatch 建立警示，以及使用 Application Auto Scaling 建立擴展政策。除了建立和更新叢集的標準 IAM 許可之外，存取 ElastiCache Auto Scaling 設定的 IAM 使用者必須具有支援動態擴展之服務的適當許可。在此最新的政策中，我們新增了對 Memcached 垂直擴展的支援，以及 動作 `elasticache:ModifyCacheCluster`。IAM 使用者必須具備使用以下範例政策中各項動作的許可：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:*",
                "elasticache:DescribeReplicationGroups",
                "elasticache:ModifyReplicationGroupShardConfiguration",
                "elasticache:IncreaseReplicaCount",
                "elasticache:DecreaseReplicaCount",
                "elasticache:DescribeCacheClusters",
                "elasticache:DescribeCacheParameters",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:DisableAlarmActions",
                "cloudwatch:EnableAlarmActions",
                "iam:CreateServiceLinkedRole",
                "sns:CreateTopic",
                "sns:Subscribe",
                "sns:Get*",
                "sns:List*"
            ],
            "Resource": "arn:aws:iam::123456789012:role/autoscaling-roles-for-cluster"
        }
    ]
}
```

------

## 服務連結角色
<a name="AutoScaling-SLR"></a>

ElastiCache for Valkey 和 Redis OSS 自動擴展服務也需要描述叢集和 CloudWatch 警示的許可，以及代表您修改 ElastiCache 目標容量的許可。如果您為叢集啟用 Auto Scaling，它會建立名為 的服務連結角色`AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG`。此服務連結角色會授予 ElastiCache 自動擴展許可，以描述政策的警示、監控機群目前的容量，以及修改機群的容量。服務連結角色是 ElastiCache 自動擴展的預設角色。如需詳細資訊，請參閱《Application Auto Scaling 使用者指南》中的 [ ElastiCache for Redis OSS 自動擴展的服務連結角色](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)。

## Auto Scaling 最佳實務
<a name="AutoScaling-best-practices"></a>

註冊 Auto Scaling 前，我們建議以下事項：

1. **只使用一個追蹤指標** – 識別您的叢集是否有 CPU 或資料密集型工作負載，並使用對應的預先定義指標來定義規模調整政策。
   + 引擎 CPU：`ElastiCachePrimaryEngineCPUUtilization` (碎片維度) 或 `ElastiCacheReplicaEngineCPUUtilization` (複本維度)
   + 資料庫使用量：`ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage` 此擴展政策在叢集上將 maxmemory-policy 設為 noeviction 時效果最佳。

   建議您避免在叢集上的每個維度使用多個政策。如果任何目標追蹤政策已準備好向外擴展，ElastiCache for Valkey 和 Redis OSS Auto 擴展將向外擴展可擴展目標，但只有在所有目標追蹤政策 （啟用向內擴展部分） 都準備好向內擴展時，才會向內擴展。如果多個政策指示可擴展的目標在同一時間進行水平擴展或縮減，則會根據針對水平擴展和縮減提供最大容量的政策進行擴展。

1. **用於目標追蹤的自訂指標** – 使用自訂指標進行目標追蹤時需小心謹慎，因為 Auto Scaling 最適合用於根據為策略所選指標的根據為策略所選指標的變更，依比例擴展/縮減規模。如果這些指標未與用於政策建立的擴展操作比例地變化，則可能會導致持續的橫向擴展或縮減操作，這可能會影響可用性或成本。

    對於資料分層叢集 (r6gd 系列執行個體類型)，請避免使用記憶體指標進行擴展。

1. **排程規模調整** - 如果您發現工作負載具確定性 (會在特定時間達到高/低負載)，建議您使用排程規模調整功能，根據需求設定目標容量。目標追蹤可在需要更多資源時橫向擴展，並在需要較少資源時縮減，最適合用於讓非確定性工作負載和叢集以所需的目標指標運作。

1. **停用縮減** - 針對目標追蹤自動調整規模的功能最適合用於工作負載逐漸增加/減少的叢集，因為指標的峰值/低谷可能會觸發連續的橫向擴展/縮減振盪。若要避免這種振盪，可以從停用縮減功能開始，您之後可以隨時根據需求手動縮減。

1. **測試您的應用程式** - 建議您使用預估的最小/最大工作負載來測試應用程式，以確定叢集所需的絕對碎片/複本數下限與上限，同時建立規模調整政策以避免可用性問題。自動調整規模可以橫向擴展至為目標設定的最大值，也可縮減至最小值。

1. **定義目標值** - 您可以針對四週期間的叢集使用率分析對應 CloudWatch 指標，以判斷目標閾值。如果您仍不確定要選擇哪個值，建議從支援的最小預先定義指標值開始。

1. 針對目標追蹤的自動調整規模功能最適合用於在碎片/複本維度間均勻分配工作負載的叢集。不均勻分配可能會導致：
   + 由於幾個熱碎片/複本上出現工作負載峰值/低谷，因此在沒有需要時進行擴展。
   + 即使具有熱碎片/複本，但由於整體平均接近目標，因此有需要時不進行縮放。

**注意**  
橫向擴展叢集時，ElastiCache 會自動將載入其中一個現有節點 (隨機選取) 的函數複製到新節點。如果您的叢集具有 Valkey 或 Redis OSS 7.0 或更新版本，且您的應用程式使用 [函數](https://valkey.io/topics/functions-intro/)，建議您將所有函數載入所有碎片，然後再向外擴展，讓您的叢集不會在不同的碎片上最終產生不同的函數。

註冊 Auto Scaling 後，請注意以下事項：
+ 支援自動調整規模的組態具有限制，因此建議您不要變更已針對自動調整規模註冊之複寫群組的組態。範例如下：
  + 手動將執行個體類型修改為不支援的類型。
  + 為複寫群組與全域資料存放區建立關聯。
  + 變更 `ReservedMemoryPercent` 參數。
  + 手動將碎片/複本增加/減少至超出政策建立期間設定的容量上限/下限。

# 搭配碎片使用 Auto Scaling
<a name="AutoScaling-Using-Shards"></a>

透過 ElastiCache 的 AutoScaling，您可以將追蹤和排程政策與 Valkey 或 Redis OSS 引擎搭配使用。

以下提供目標追蹤和排程政策的詳細資訊，以及如何使用 AWS 管理主控台 AWS CLI 和 APIs 套用這些政策。

**Topics**
+ [目標追蹤擴展政策](AutoScaling-Scaling-Policies-Target.md)
+ [新增擴展原則](AutoScaling-Scaling-Adding-Policy-Shards.md)
+ [註冊可擴展的目標](AutoScaling-Scaling-Registering-Policy-CLI.md)
+ [定義擴展政策](AutoScaling-Scaling-Defining-Policy-API.md)
+ [停用規模縮減活動](AutoScaling-Scaling-Disabling-Scale-in.md)
+ [套用擴展原則](AutoScaling-Scaling-Applying-a-Scaling-Policy.md)
+ [編輯擴展原則](AutoScaling-Scaling-Editing-a-Scaling-Policy.md)
+ [刪除擴展原則](AutoScaling-Scaling-Deleting-a-Scaling-Policy.md)
+ [CloudFormation 使用 Auto Scaling 政策](AutoScaling-with-Cloudformation-Shards.md)
+ [排程擴展](AutoScaling-with-Scheduled-Scaling-Shards.md)

# 目標追蹤擴展政策
<a name="AutoScaling-Scaling-Policies-Target"></a>

使用目標追蹤擴展政策，您可以選取指標及設定目標值。ElastiCache for Valkey 和 Redis OSS Auto Scaling 會建立和管理 CloudWatch 警示，以觸發擴展政策，並根據指標和目標值計算擴展調整。規模調整政策會視需要新增或移除複本，讓指標保持在等於或接近指定目標值。除了讓指標保持在接近目標值之外，目標追蹤規模調整政策也會配合指標中，因為負載模式波動所造成的波動調整，並將機群容量中的快速波動降到最低。

例如，想想看當規模調整政策使用預先定義的平均 `ElastiCachePrimaryEngineCPUUtilization` 指標搭配所設定目標值時的情況。此政策可以讓 CPU 使用率維持在等於或接近指定的目標值。

## 預先定義的指標
<a name="AutoScaling-Scaling-Criteria-predfined-metrics"></a>

預先定義的指標是參照指定 CloudWatch 指標之特定名稱、維度和統計資料 (`average`) 的結構。Auto Scaling 政策會為您的叢集定義下列其中一項預先定義的指標：


****  

| 預先定義的指標名稱 | CloudWatch 指標名稱 | CloudWatch 指標維度 | 不合格執行個體類型  | 
| --- | --- | --- | --- | 
| ElastiCachePrimaryEngineCPUUtilization |  `EngineCPUUtilization`  |  ReplicationGroupId, Role = Primary  | 無 | 
| ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage |  `DatabaseCapacityUsageCountedForEvictPercentage`  |  Valkey 或 Redis OSS 複寫群組指標  | 無 | 
| ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage |  `DatabaseMemoryUsageCountedForEvictPercentage`  |  Valkey 或 Redis OSS 複寫群組指標  | R6gd | 

無法使用資料層級執行個體類型 `ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage`，因為這些執行個體類型會將資料儲存在記憶體和 SSD 中。資料層級執行個體的預期使用案例是擁有 100% 的記憶體使用量，並視需要填滿 SSD。

## 碎片的 Auto Scaling 條件
<a name="AutoScaling-Scaling-Criteria"></a>

當服務偵測到預先定義指標等於或大於目標設定，便會自動增加碎片容量。ElastiCache for Valkey 和 Redis OSS 會將叢集碎片擴展為等於兩個數字中較大者的計數：與目標的百分比變化和目前碎片的 20%。對於縮減，除非整體指標值低於已定義目標的 75%，否則 ElastiCache 不會自動縮減。

以下提供水平擴展的範例，如果你有 50 個碎片，
+ 如果您的目標違規 30%，ElastiCache 會向外擴展 30%，導致每個叢集產生 65 個碎片。
+ 如果您的目標違規 10%，ElastiCache 預設會向外擴展 最低 20%，因此每個叢集會產生 60 個碎片。

對於縮減範例，如果您已選取目標值 60%，ElastiCache 不會自動縮減，直到指標小於或等於 45% （低於目標 60% 的 25%)。

## Auto Scaling 考量事項
<a name="AutoScaling-Scaling-Considerations"></a>

請謹記以下幾點考量：
+ 目標追蹤擴展政策假設在指定的指標超過目標值時，應執行向外擴展。您無法使用目標追蹤擴展政策在指定的指標低於目標值時執行向外擴展。ElastiCache for Valkey 和 Redis OSS 會將碎片擴展為叢集中現有碎片目標的至少 20% 偏差。
+ 所指定指標的資料不足時，目標追蹤擴展政策不會執行擴展。政策不會執行縮減，因為縮減不會將資料不足解釋為低使用率。
+ 您可能會看到目標值與實際指標資料點之間有些差距。這是因為當 ElastiCache Auto Scaling 決定要新增或移除多少容量時，一律會四捨五入或捨棄，以保守的方式運作。這樣可防止新增不足的容量，或移除過多的容量。
+ 為了確保應用程式可用性，服務可以根據指標依比例快速水平擴展，但需以更保守的方式縮減規模。
+ 您可以為 ElastiCache for Valkey 和 Redis OSS 叢集設定多個目標追蹤擴展政策，前提是每個叢集都使用不同的指標。ElastiCache Auto Scaling 的目的是一律優先考慮可用性，因此其行為會根據目標追蹤政策是否已準備好向外擴展或向內擴展而有所不同。如果任何目標追蹤政策已準備好向外擴展，它就會將服務向外擴展，但只有在所有目標追蹤政策 (已啟用向內擴展部分) 都已準備好要向內擴展時才會向內擴展。
+ 請勿編輯或刪除 ElastiCache Auto Scaling 針對目標追蹤擴展政策管理的 CloudWatch 警示。當您刪除擴展政策時，ElastiCache Auto Scaling 會自動刪除警示。
+ ElastiCache Auto Scaling 不會阻止您手動修改叢集碎片。這些手動調整不會影響附加至調整規模政策的任何現有 CloudWatch 警示，但會影響可能觸發這些 CloudWatch 警示的指標。
+ 這些由 Auto Scaling 管理的 CloudWatch 警示，是根據叢集中所有碎片的 AVG 指標所定義的。因此，使用熱碎片可能會導致以下任一情況：
  + 由於幾個熱碎片上的負載觸發了 CloudWatch 警示，因此在沒有需要時進行擴展
  + 由於跨影響警示的所有碎片之彙總 AVG 沒有超出限制，因此在需要時不進行擴展。
+ 每個叢集節點的 ElastiCache 預設限制仍然適用。因此，當選擇使用 Auto Scaling 且您希望節點數上限超過預設配額時，請至 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)請求增加配額，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。
+ 確保 VPC 中有足夠的 ENI (彈性網路介面) 可用，進行水平擴展時會需要用到。如需詳細資訊，請參閱[彈性網路介面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)。
+ 如果 EC2 沒有足夠的可用容量，ElastiCache Auto Scaling 將無法擴展，而且會在容量可用時延遲。
+ 在縮減期間，ElastiCache for Redis OSS Auto Scaling 不會移除項目大小大於序列化後 256 MB 的槽碎片。
+ 進行規模縮減期間，如果產生的碎片組態上的可用記憶體不足，就不會移除碎片。

# 新增擴展原則
<a name="AutoScaling-Scaling-Adding-Policy-Shards"></a>

您可以使用 新增擴展政策 AWS 管理主控台。

**將 Auto Scaling 政策新增至 ElastiCache for Valkey 和 Redis OSS 叢集**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇要新增政策至其中的叢集 (請選擇叢集名稱而非其左側的按鈕)。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 選擇 **Dynamic scaling** (動態擴展)。

1. 在 **Policy Name (政策名稱)** 輸入政策名稱。

1. 在 **Scalable Dimension (可擴展的維度)** 選擇 **shards (碎片)**。

1. 目標指標請選擇下列其中一個：
   + **Primary CPU Utilization (主要 CPU 使用率)**，用於根據平均 CPU 使用率建立政策。
   + **Memory (記憶體)**，用於根據平均資料庫記憶體建立政策。
   + 根據平均資料庫容量使用情況建立政策的**容量**。容量指標包括資料層級執行個體的記憶體和 SSD 使用率，以及所有其他執行個體類型的記憶體使用率。

1. 針對目標值，選擇大於或等於 35 且小於或等於 70 的值。Auto Scaling 將在整個 ElastiCache 碎片中為所選目標指標保留此值：
   + **主要 CPU 使用率**：維護主節點上 `EngineCPUUtilization` 指標結果的目標值。
   + **記憶體**：維護 `DatabaseMemoryUsageCountedForEvictPercentage` 指標結果的目標值 
   + 維護 `DatabaseCapacityUsageCountedForEvictPercentage` 指標結果目標值的**容量**，

   系統會新增或移除叢集碎片，讓指標接近指定的值。

1. (選用) 主控台不支援規模縮減或水平擴展冷卻時間。使用 AWS CLI 修改冷卻時間值。

1. 針對**最小容量**，輸入 ElastiCache Auto Scaling 政策需要維護的碎片數量下限。

1. 針對**容量上限**，輸入 ElastiCache Auto Scaling 政策需要維護的碎片數量上限。此值必須等於或大於 250。

1. 選擇**建立**。

# 註冊可擴展的目標
<a name="AutoScaling-Scaling-Registering-Policy-CLI"></a>

您必須先向 ElastiCache Auto Scaling註冊叢集，才能搭配 ElastiCache for Valkey 和 Redis OSS 叢集使用 Auto Scaling。這是為了定義要套用到叢集的擴展維度和限制。ElastiCache 自動擴展會沿著`elasticache:replication-group:NodeGroups`可擴展維度動態擴展叢集，這代表叢集碎片的數量。

 **使用 AWS CLI** 

若要註冊 ElastiCache for Valkey 和 Redis OSS 叢集，請使用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令搭配下列參數：
+ `--service-namespace` – 將此值設定為 `elasticache`
+ `--resource-id` – 叢集的資源識別符。對於此參數，資源類型為 `ReplicationGroup` ，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ `--scalable-dimension` – 將此值設定為 `elasticache:replication-group:NodeGroups`。
+ `--max-capacity ` – 由 ElastiCache 自動擴展管理的碎片數目上限。如需了解有關 `--min-capacity`、`--max-capacity` 以及叢集中碎片數目之間的關係資訊，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。
+ `--min-capacity ` – 由 ElastiCache 自動擴展管理的碎片數量下限。如需了解有關 `--min-capacity`、`--max-capacity` 以及叢集中碎片數目之間的關係資訊，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。

**Example**  
 在下列範例中，您會註冊名為 的 ElastiCache 叢集`myscalablecluster`。註冊中表明應該動態擴展叢集，使其具有 1 到 10 個碎片。  
若為 Linux、macOS 或 Unix：  

```
aws application-autoscaling register-scalable-target \
    --service-namespace elasticache \
    --resource-id replication-group/myscalablecluster \
    --scalable-dimension elasticache:replication-group:NodeGroups \
    --min-capacity 1 \
    --max-capacity 10 \
```
針對 Windows：  

```
aws application-autoscaling register-scalable-target ^
    --service-namespace elasticache ^
    --resource-id replication-group/myscalablecluster ^
    --scalable-dimension elasticache:replication-group:NodeGroups ^
    --min-capacity 1 ^
    --max-capacity 10 ^
```

**使用 API**

若要註冊 ElastiCache 叢集，請使用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令搭配下列參數：
+ ServiceNamespace - 將此值設為 elasticache。
+ ResourceID - ElastiCache 叢集的資源識別碼。對於此參數，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ ScalableDimension - 將此值設為 `elasticache:replication-group:NodeGroups`。
+ MinCapacity：由 ElastiCache 自動擴展管理的碎片數量下限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。
+ MaxCapacity：由 ElastiCache 自動擴展管理的碎片數量上限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。

**Example**  
在下列範例中，您會`myscalablecluster`使用 Application Auto Scaling API 註冊名為 的 ElastiCache 叢集。此註冊中表明應該動態擴展叢集，使其具有 1 到 5 個複本。  

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

# 定義擴展政策
<a name="AutoScaling-Scaling-Defining-Policy-API"></a>

目標追踪規模調整政策組態由 JSON 區塊表示，其中定義了指標和目標值。您可以將規模調整政策的組態設定，儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時，您可以使用該文字檔案。如需政策組態語法的詳細資訊，請參閱「Application Auto Scaling API 參考」中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

您可使用下列選項來定義目標追蹤擴展政策的組態：

**Topics**
+ [使用預先定義的指標](#AutoScaling-Scaling-Predefined-Metric)
+ [使用自訂的指標](#AutoScaling-Scaling-Custom-Metric)
+ [使用冷卻時間](#AutoScaling-Scaling-Cooldown-periods)

## 使用預先定義的指標
<a name="AutoScaling-Scaling-Predefined-Metric"></a>

透過使用預先定義的指標，您可以快速定義 ElastiCache for Valkey 和 Redis OSS 叢集的目標追蹤擴展政策，該叢集可與 ElastiCache Auto Scaling 中的目標追蹤搭配使用。

目前，ElastiCache 在 NodeGroup Auto Scaling 中支援下列預先定義的指標：
+ **ElastiCachePrimaryEngineCPUUtilization** – 叢集中所有主節點 CloudWatch 中`EngineCPUUtilization`指標的平均值。
+ **ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage** – 叢集中所有主節點 CloudWatch 中`DatabaseMemoryUsageCountedForEvictPercentage`指標的平均值。
+ **ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage** – CloudWatch 中叢集中所有主節點的`ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage`指標平均值。

如需 `EngineCPUUtilization`、`DatabaseMemoryUsageCountedForEvictPercentage` 和 `DatabaseCapacityUsageCountedForEvictPercentage` 指標的詳細資訊，請參閱 [使用 CloudWatch 指標監控用量](CacheMetrics.md)。若要在您的規模調整政策中使用預先定義的指標，請為規模調整政策建立目標追蹤組態設定。此組態設定必須加入用於預先定義指標的 `PredefinedMetricSpecification`，以及用於該指標目標值的 TargetValue。

**Example**  
下列範例說明 ElastiCache for Valkey 和 Redis OSS 叢集目標追蹤擴展的典型政策組態。在此組態中，`ElastiCachePrimaryEngineCPUUtilization`預先定義的指標會根據叢集中所有主節點的平均 CPU 使用率 40% 來調整叢集。  

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    }
}
```

## 使用自訂的指標
<a name="AutoScaling-Scaling-Custom-Metric"></a>

 使用自訂的指標，您可以定義目標追蹤規模調整政策來滿足您的自訂需求。您可以根據隨擴展比例變更的任何 ElastiCache 指標來定義自訂指標。並非所有 ElastiCache 指標都適用於目標追蹤。指標必須是有效的使用率指標，而且能夠表示執行個體的忙碌程度。指標的值必須根據叢集中碎片的數量依比例增加或減少。若要使用指標資料來依比例水平擴展或縮減碎片的數量，這樣子成比例的增加或減少是必要的。

**Example**  
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，自訂指標會根據名為 之叢集中所有碎片的平均 CPU 使用率 50% 來調整 ElastiCache for Redis OSS 叢集`my-db-cluster`。

```
{
    "TargetValue": 50,
    "CustomizedMetricSpecification":
    {
        "MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {
                "Name": "ReplicationGroup","Value": "my-db-cluster"
            },
            {
                "Name": "Role","Value": "PRIMARY"
            }
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

## 使用冷卻時間
<a name="AutoScaling-Scaling-Cooldown-periods"></a>

您可以指定一個值 (單位為秒)，讓 `ScaleOutCooldown` 新增冷卻時間以便水平擴展您的叢集。同樣的，您可以指定一個值 (單位為秒)，讓 `ScaleInCooldown` 新增冷卻時間以便為您的叢集縮減規模。如需政策組態語法的詳細資訊，請參閱「Application Auto Scaling API 參考」中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

 下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，`ElastiCachePrimaryEngineCPUUtilization`預先定義的 指標用於根據該叢集中所有主節點的平均 CPU 使用率 40% 來調整 ElastiCache for Redis OSS 叢集。這個組態設定分別提供了 10 分鐘的規模縮減冷卻時間，和 5 分鐘的橫向擴展冷卻時間。

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```

# 停用規模縮減活動
<a name="AutoScaling-Scaling-Disabling-Scale-in"></a>

您可以停用縮減活動，防止叢集中的目標追蹤擴展政策組態擴展。停用規模縮減的動作，可防止規模調整政策刪除碎片，同時讓規模調整政策仍然能視需要建立碎片。

您可以為 `DisableScaleIn` 指定布林值，以啟用或停用 叢集的規模縮減活動。如需政策組態語法的詳細資訊，請參閱「Application Auto Scaling API 參考」中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，`ElastiCachePrimaryEngineCPUUtilization`預先定義的指標會根據該叢集中所有主節點的平均 CPU 使用率 40%，來調整 ElastiCache for Valkey 和 Redis OSS 叢集。此組態設定停用了規模調整政策的規模縮減動作。

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

# 套用擴展原則
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy"></a>

向 ElastiCache for Valkey 和 Redis OSS 自動擴展註冊叢集並定義擴展政策之後，您可以將擴展政策套用至已註冊的叢集。若要將擴展政策套用至 ElastiCache for Redis OSS 叢集，您可以使用 AWS CLI 或 Application Auto Scaling API。

## 使用 套用擴展政策 AWS CLI
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-CLI"></a>

若要將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集，請使用 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 命令搭配下列參數：
+ **--policy-name** - 規模調整政策的名稱。
+ **--policy-type** - 將此值設為 `TargetTrackingScaling`。
+ **--resource-id** – 資源識別符。對於此參數，資源類型為 `ReplicationGroup` ，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ **--service-namespace** - 將此值設為 `elasticache`。
+ **--scalable-dimension** - 將此值設為 `elasticache:replication-group:NodeGroups`。
+ **--target-tracking-scaling-policy-configuration** – 要用於叢集的目標追蹤擴展政策組態。

在下列範例中，您將名為 的目標追蹤擴展政策套用至名為 `myscalablepolicy`的 ElastiCache for Valkey 和 Redis OSS 叢集，該叢集`myscalablecluster`使用 ElastiCache 自動擴展。做法是使用儲存於 `config.json` 檔案中的政策組態設定。

針對 Linux、macOS 或 Unix：

```
aws application-autoscaling put-scaling-policy \
    --policy-name myscalablepolicy \
    --policy-type TargetTrackingScaling \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:NodeGroups \
    --target-tracking-scaling-policy-configuration file://config.json
```

針對 Windows：

```
aws application-autoscaling put-scaling-policy ^
    --policy-name myscalablepolicy ^
    --policy-type TargetTrackingScaling ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:NodeGroups ^
    --target-tracking-scaling-policy-configuration file://config.json
```

## 使用 API 套用規模調整政策
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-API"></a>

若要將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集，請使用 [PutScalingPolicy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) AWS CLI 命令搭配下列參數：
+ **--policy-name** - 規模調整政策的名稱。
+ **--resource-id** – 資源識別符。對於此參數，資源類型為 `ReplicationGroup` ，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ **--service-namespace** - 將此值設為 `elasticache`。
+ **--scalable-dimension** - 將此值設為 `elasticache:replication-group:NodeGroups`。
+ **--target-tracking-scaling-policy-configuration** – 要用於叢集的目標追蹤擴展政策組態。

在下列範例中，您將名為 的目標追蹤擴展政策套用至名為 `myscalablepolicy`且`myscalablecluster`具有 ElastiCache 自動擴展的 ElastiCache 叢集。您使用的政策組態設定，是以 `ElastiCachePrimaryEngineCPUUtilization` 這個預先定義的指標為根據。

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 40.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
        }
    }
}
```

# 編輯擴展原則
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy"></a>

您可以使用 AWS 管理主控台、 AWS CLI或 Application Auto Scaling API 編輯擴展政策。

## 使用 編輯擴展政策 AWS 管理主控台
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**編輯 ElastiCache for Valkey 和 Redis OSS 叢集的 Auto Scaling 政策**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇適當的引擎。

1. 選擇要新增政策至其中的叢集 (請選擇叢集名稱而非其左側的按鈕)。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 根據 **Scaling policies** (擴展政策)，找到您要變更的自動擴展政策，並選擇 **Modify** (修改)。

1. 對政策進行必要的變更。

1. 選擇 **Modify** (修改)。

## 使用 AWS CLI 和 API 編輯擴展政策
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CLI"></a>

您可以使用 AWS CLI 或 Application Auto Scaling API，以套用擴展政策的相同方式編輯擴展政策：
+ 使用 時 AWS CLI，請在 `--policy-name` 參數中指定您要編輯的政策名稱。針對您想要變更的參數指定新的參數值。
+ 使用 Application Auto Scaling API 時，請在 `PolicyName` 參數中指定您所要編輯之政策的名稱。針對您想要變更的參數指定新的參數值。

如需詳細資訊，請參閱[套用擴展原則](AutoScaling-Scaling-Applying-a-Scaling-Policy.md)。

# 刪除擴展原則
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy"></a>

您可以使用 AWS 管理主控台、 AWS CLI或 Application Auto Scaling API 刪除擴展政策。

## 使用 刪除擴展政策 AWS 管理主控台
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**刪除 ElastiCache for Redis OSS 叢集的 Auto Scaling 政策**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇要您想編輯其擴展政策的叢集 (請選擇叢集名稱而非其左側的按鈕。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 在 **Scaling Policies** (擴展政策) 區段中，選擇自動擴展政策，然後選擇 **Delete** (刪除)。

## 使用 刪除擴展政策 AWS CLI
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-CLI"></a>

若要刪除 ElastiCache for Valkey 和 Redis OSS 叢集的擴展政策，請使用 [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scaling-policy.html) AWS CLI 命令搭配下列參數：
+ **--policy-name** - 規模調整政策的名稱。
+ **--resource-id** – 資源識別符。對於此參數，資源類型為 `ReplicationGroup` ，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ **--service-namespace** - 將此值設為 `elasticache`。
+ **--scalable-dimension** - 將此值設為 `elasticache:replication-group:NodeGroups`。

在下列範例中，您會`myscalablepolicy`從名為 的叢集中刪除名為 的目標追蹤擴展政策`myscalablecluster`。

若為 Linux、macOS 或 Unix：

```
aws application-autoscaling delete-scaling-policy \
    --policy-name myscalablepolicy \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:NodeGroups
```

針對 Windows：

```
aws application-autoscaling delete-scaling-policy ^
    --policy-name myscalablepolicy ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:NodeGroups
```

## 使用 API 刪除規模調整政策
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-API"></a>

若要刪除 ElastiCache for Valkey 和 Redis OSS 叢集的擴展政策，請使用 [DeleteScalingPolicy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scaling-policy.html) AWS CLI 命令搭配下列參數：
+ **--policy-name** - 規模調整政策的名稱。
+ **--resource-id** – 資源識別符。對於此參數，資源類型為 `ReplicationGroup` ，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ **--service-namespace** - 將此值設為 `elasticache`。
+ **--scalable-dimension** - 將此值設為 `elasticache:replication-group:NodeGroups`。

在下列範例中，您會`myscalablepolicy`從名為 的叢集中刪除名為 的目標追蹤擴展政策`myscalablecluster`。

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups"
}
```

# CloudFormation 使用 Auto Scaling 政策
<a name="AutoScaling-with-Cloudformation-Shards"></a>

此程式碼片段示範如何建立目標追蹤政策，並使用 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 資源將其套用至 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 資源。其使用 [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 和 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 內部函數來建構 `ResourceId` 屬性，該屬性具有相同範本中指定的 `AWS::ElastiCache::ReplicationGroup` 資源的邏輯名稱。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      ScalingTargetId: !Ref ScalingTarget
      ServiceNamespace: elasticache
      PolicyName: testpolicy
      PolicyType: TargetTrackingScaling
      ScalableDimension: 'elasticache:replication-group:NodeGroups'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCachePrimaryEngineCPUUtilization
        TargetValue: 40
```

# 排程擴展
<a name="AutoScaling-with-Scheduled-Scaling-Shards"></a>

按照排程進行擴展讓您能夠因應可預測的需求變化，據以擴展您的應用程式。若要使用排程擴展，您可以建立排程動作，指示 ElastiCache for Valkey 和 Redis OSS 在特定時間執行擴展活動。當您建立排程動作時，您可以指定現有的叢集、應進行擴展活動的時間、最小容量和最大容量。您可以建立僅擴展一次或依週期性排程擴展的排程動作。

 您只能為已存在的叢集建立排程動作。您無法在建立叢集的同時建立排程動作。

如需排程動作建立、管理和刪除作業相關術語的詳細資訊，請參閱[排程動作建立、管理和刪除作業常用的命令](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands) 

**若要建立週期性排程：**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇您要新增政策的叢集。

1. 從 **Actions (動作)** 下拉式選單中選擇 **Manage Auto Scaling policies (管理 Auto Scaling 政策)**。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 在 **Auto scaling policies (Auto Scaling 政策)** 區段中，會出現 **Add Scaling policy (新增規模調整政策)** 對話方塊。選擇 **Scheduled scaling (排程規模調整)**。

1. 在 **Policy Name (政策名稱)** 輸入政策的名稱。

1. 在 **Scalable Dimension (可擴展的維度)** 選擇 **Shards (碎片)**。

1. 在 **Target Shards (目標碎片)** 選擇值。

1. 在 **Recurrence (重複)** 選擇 **Recurring (週期性)**。

1. 在 **Frequency (頻率)** 選擇各自的值。

1. 在 **Start Date (開始日期)** 和 **Start time (開始時間)** 選擇政策生效的時間。

1. 選擇 **Add Policy (新增政策)**。

**若要建立一次性排程動作：**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇您要新增政策的叢集。

1. 從 **Actions (動作)** 下拉式選單中選擇 **Manage Auto Scaling policies (管理 Auto Scaling 政策)**。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 在 **Auto scaling policies (Auto Scaling 政策)** 區段中，會出現 **Add Scaling policy (新增規模調整政策)** 對話方塊。選擇 **Scheduled scaling (排程規模調整)**。

1. 在 **Policy Name (政策名稱)** 輸入政策的名稱。

1. 在 **Scalable Dimension (可擴展的維度)** 選擇 **Shards (碎片)**。

1. 在 **Target Shards (目標碎片)** 選擇值。

1. 在 **Recurrence (重複)**，選擇 **Once (一次)**。

1. 在 **Start Date (開始日期)** 和 **Start time (開始時間)** 選擇政策生效的時間。

1. 在 **End Date (結束日期)** 選擇政策效用結束的日期。

1. 選擇 **Add Policy (新增政策)**。

**刪除排程動作**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇您要新增政策的叢集。

1. 從 **Actions (動作)** 下拉式選單中選擇 **Manage Auto Scaling policies (管理 Auto Scaling 政策)**。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 在 **Auto Scaling policies (Auto Scaling 政策)** 區段中，選擇 Auto Scaling 政策，然後從 **Actions (動作)** 對話中選擇 **Delete (刪除)**。

**使用 AWS CLI 管理排定的擴展**

使用下列 application-autoscaling API：
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scheduled-action.html) 

## 使用 CloudFormation 建立排程動作
<a name="AutoScaling-with-Cloudformation-Declare-Scheduled-Action"></a>

此程式碼片段示範如何建立目標追蹤政策，並使用 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 資源將其套用至 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 資源。其使用 [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 和 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 內部函數來建構 `ResourceId` 屬性，該屬性具有相同範本中指定的 `AWS::ElastiCache::ReplicationGroup` 資源的邏輯名稱。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```

# 搭配複本使用自動擴展
<a name="AutoScaling-Using-Replicas"></a>

ElastiCache 複寫群組可以設定一或多個快取，以做為單一邏輯節點運作。

以下提供目標追蹤和排程政策的詳細資訊，以及如何使用 AWS 管理主控台 AWS CLI 和 APIs 套用這些政策。

# 目標追蹤擴展政策
<a name="AutoScaling-Scaling-Policies-Replicas-Replicas"></a>

使用目標追蹤擴展政策，您可以選取指標及設定目標值。ElastiCache for Valkey 和 Redis OSS AutoScaling 會建立和管理 CloudWatch 警示，以觸發擴展政策，並根據指標和目標值計算擴展調整。規模調整政策會視需要平均在所有碎片間新增或移除複本，以讓指標保持在等於或接近指定目標值。除了讓指標保持在接近目標值之外，目標追蹤規模調整政策也會配合指標中，因為負載模式波動所造成的波動調整，並將機群容量中的快速波動降到最低。

## 複本的 Auto Scaling 條件
<a name="AutoScaling-Scaling-Criteria-Replicas"></a>

Auto Scaling 政策會為您的叢集定義下列預先定義的指標：

`ElastiCacheReplicaEngineCPUUtilization`：在 ElastiCache 用來觸發自動擴展操作的所有複本中彙總的 AVG EngineCPU 使用率閾值。您可以將使用率目標設定為 35% 到 70% 之間。

當服務偵測到 `ElastiCacheReplicaEngineCPUUtilization` 指標等於或大於目標設定，便會自動增加碎片間的複本數。ElastiCache 會將叢集複本擴展為等於兩個數字中較大者的計數：與目標和一個複本的百分比變化。對於縮減，除非整體指標值低於已定義目標的 75%，否則 ElastiCache 不會自動縮減。

以下提供水平擴展的範例，如果有 5 個碎片，各 1 個複本：

如果您的目標違規 30%，ElastiCache for Valkey 和 Redis OSS 會跨所有碎片向外擴展 1 個複本 (max(0.3，預設 1))。這會產生 5 個碎片，每個碎片各 2 個複本。

對於縮減範例，如果您已選取目標值 60%，ElastiCache for Valkey 和 Redis OSS 將不會自動縮減，直到指標小於或等於 45% （低於目標 60% 的 25%)。

### Auto Scaling 考量事項
<a name="AutoScaling-Scaling-Considerations-Replicas"></a>

請謹記以下幾點考量：
+ 目標追蹤擴展政策假設在指定的指標超過目標值時，應執行向外擴展。您無法使用目標追蹤擴展政策在指定的指標低於目標值時執行向外擴展。ElastiCache for Valkey 和 Redis OSS 會將複本擴展為叢集中所有碎片中現有複本的最大值 （與目標相差 %，預設 1)。
+ 所指定指標的資料不足時，目標追蹤擴展政策不會執行擴展。政策不會執行向內擴展，因為向內擴展不會將資料不足解釋為低使用率。
+ 您可能會看到目標值與實際指標資料點之間有些差距。這是因為當 ElastiCache Auto Scaling 決定要新增或移除多少容量時，一律會四捨五入或捨棄，以保守的方式運作。這樣可防止新增不足的容量，或移除過多的容量。
+ 為了確保應用程式的可用性，此服務可以配合指標依比例快速擴展規模，但是以更漸進的方式在叢集中碎片間最多縮減規模 1 個複本。
+ 您可以為 ElastiCache for Valkey 和 Redis OSS 叢集設定多個目標追蹤擴展政策，前提是每個叢集都使用不同的指標。Auto Scaling 的目的是一律優先考慮可用性，因此其行為會根據目標追蹤政策是否已準備好向外擴展或向內擴展而有所不同。如果任何目標追蹤政策已準備好向外擴展，它就會將服務向外擴展，但只有在所有目標追蹤政策 (已啟用向內擴展部分) 都已準備好要向內擴展時才會向內擴展。
+ 請勿編輯或刪除 ElastiCache Auto Scaling 針對目標追蹤擴展政策管理的 CloudWatch 警示。當您刪除擴展政策或刪除叢集時，Auto Scaling 會自動刪除警示。
+ ElastiCache Auto Scaling 不會阻止您跨碎片手動修改複本。這些手動調整不會影響附加至調整規模政策的任何現有 CloudWatch 警示，但會影響可能觸發這些 CloudWatch 警示的指標。
+ 這些由 Auto Scaling 管理的 CloudWatch 警示，是根據叢集中所有碎片的 AVG 指標所定義的。因此，使用熱碎片可能會導致以下任一情況：
  + 由於幾個熱碎片上的負載觸發了 CloudWatch 警示，因此在沒有需要時進行擴展
  + 由於跨影響警示的所有碎片之彙總 AVG 沒有超出限制，因此在需要時不進行擴展。
+ 每個叢集節點的 ElastiCache 預設限制仍然適用。因此，當選擇使用 Auto Scaling 且您希望節點數上限超過預設配額時，請至 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)請求增加配額，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。
+ 確保 VPC 中有足夠的 ENI (彈性網路介面) 可用，進行水平擴展時會需要用到。如需詳細資訊，請參閱[彈性網路介面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)。
+ 如果 EC2 沒有足夠的容量可用，ElastiCache Auto Scaling 將不會橫向擴展，直到容量可用，或者如果您將叢集手動修改為具有足夠容量的執行個體類型。
+ ElastiCache Auto Scaling 不支援擴展叢集`ReservedMemoryPercent`低於 25% 的複本。如需詳細資訊，請參閱[管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)。

# 新增擴展原則
<a name="AutoScaling-Adding-Policy-Replicas"></a>

您可以使用 新增擴展政策 AWS 管理主控台。

**使用 新增擴展政策 AWS 管理主控台**

將自動擴展政策新增至 ElastiCache for Valkey 和 Redis OSS

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 選擇要新增政策至其中的叢集 (請選擇叢集名稱而非其左側的按鈕)。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 選擇 **Dynamic scaling** (動態擴展)。

1. 根據 **Scaling policies** (擴展政策)，選擇 **Add dynamic scaling** (新增動態擴展)。

1. 在 **Policy Name (政策名稱)** 輸入政策的名稱。

1. 在 **Scalable Dimension (可擴展的維度)**，從對話方塊中選取 **Replicas (複本)**。

1. 針對目標值，輸入您要在 ElastiCache 複本上維護的 CPU 使用率平均百分比。此值必須 >=35 且 <=70。系統會新增或移除叢集複本，讓指標接近指定的值。

1. (選用) 主控台不支援規模縮減或水平擴展冷卻時間。使用 AWS CLI 修改冷卻值。

1. 針對**最小容量**，輸入 ElastiCache Auto Scaling 政策需要維護的複本數量下限。

1. 針對**最大容量**，輸入 ElastiCache Auto Scaling 政策需要維護的複本數量上限。此值必須 >=5。

1. 選擇**建立**。

# 註冊可擴展的目標
<a name="AutoScaling-Register-Policy"></a>

您可以根據預先定義的指標或自訂指標，套用規模調整政策。若要這樣做，您可以使用 AWS CLI 或 Application Auto Scaling API。第一步是向 Auto Scaling 註冊 ElastiCache for Valkey 和 Redis OSS 複寫群組。

您必須先向 ElastiCache 自動擴展註冊叢集，才能搭配叢集使用 ElastiCache 自動擴展。這是為了定義要套用到叢集的擴展維度和限制。ElastiCache 自動擴展會沿著`elasticache:replication-group:Replicas`可擴展維度動態擴展叢集，這代表每個碎片的叢集複本數量。

**使用 CLI** 

若要註冊 ElastiCache 叢集，請使用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令搭配下列參數：
+ --service-namespace - 將此值設為 elasticache。
+ --resource-id – ElastiCache 叢集的資源識別符。在此參數中，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ --scalable-dimension - 將此值設定為 `elasticache:replication-group:Replicas`。
+ --min-capacity – ElastiCache Auto Scaling 要管理的複本數量下限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。
+ --max-capacity – ElastiCache Auto Scaling 要管理的複本數量上限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。

**Example**  
在下列範例中，您會註冊名為 的 ElastiCache 叢集`myscalablecluster`。註冊中表明應該動態擴展叢集，使其具有 1 到 5 個複本。  
若為 Linux、macOS 或 Unix：  

```
aws application-autoscaling register-scalable-target \
    --service-namespace elasticache \
    --resource-id replication-group/myscalablecluster \
    --scalable-dimension elasticache:replication-group:Replicas \
    --min-capacity 1 \
    --max-capacity 5 \
```
針對 Windows：  

```
aws application-autoscaling register-scalable-target ^
    --service-namespace elasticache ^
    --resource-id replication-group/myscalablecluster ^
    --scalable-dimension elasticache:replication-group:Replicas ^
    --min-capacity 1 ^
    --max-capacity 5 ^
```

**使用 API**

若要註冊 ElastiCache 叢集，請使用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令搭配下列參數：
+ ServiceNamespace - 將此值設為 elasticache。
+ ResourceID - ElastiCache 叢集的資源識別碼。在此參數中，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ ScalableDimension - 將此值設為 `elasticache:replication-group:Replicas`。
+ MinCapacity：由 ElastiCache 自動擴展管理的複本數目下限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。
+ MaxCapacity：由 ElastiCache 自動擴展管理的複本數量上限。如需了解 --min-capacity、--max-capacity 以及叢集中複本數之間的關係，請參閱「[容量下限和上限](AutoScaling-Policies.md#AutoScaling-MinMax)」。

**Example**  
在下列範例中，您會`myscalablecluster`使用 Application Auto Scaling API 註冊名為 的叢集。此註冊中表明應該動態擴展叢集，使其具有 1 到 5 個複本。

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

# 定義擴展政策
<a name="AutoScaling-Defining-Policy"></a>

目標追踪規模調整政策組態由 JSON 區塊表示，其中定義了指標和目標值。您可以將規模調整政策的組態設定，儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時，您可以使用該文字檔案。如需政策組態語法的詳細資訊，請參閱 *Application Auto Scaling API 參考*中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

您可使用下列選項來定義目標追蹤擴展政策的組態：

**Topics**
+ [使用預先定義的指標](#AutoScaling-Predefined-Metric)
+ [編輯擴展原則](AutoScaling-Editing-Policy.md)
+ [刪除擴展原則](AutoScaling-Deleting-Policy.md)
+ [CloudFormation 使用 Auto Scaling 政策](AutoScaling-with-Cloudformation.md)
+ [排程擴展](AutoScaling-with-Scheduled-Scaling-Replicas.md)

## 使用預先定義的指標
<a name="AutoScaling-Predefined-Metric"></a>

目標追踪規模調整政策組態由 JSON 區塊表示，其中定義了指標和目標值。您可以將規模調整政策的組態設定，儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時，您可以使用該文字檔案。如需政策組態語法的詳細資訊，請參閱 *Application Auto Scaling API 參考*中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

您可使用下列選項來定義目標追蹤擴展政策的組態：

**Topics**
+ [使用預先定義的指標](#AutoScaling-Predefined-Metric)
+ [使用自訂的指標](#AutoScaling-Custom-Metric)
+ [使用冷卻時間](#AutoScaling-Using-Cooldowns)
+ [停用規模縮減活動](#AutoScaling-Disabling-Scalein)
+ [將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集](#AutoScaling-Applying-Policy)

### 使用預先定義的指標
<a name="AutoScaling-Predefined-Metric"></a>

透過使用預先定義的指標，您可以快速定義 ElastiCache for Valkey 和 Redis OSS 叢集的目標追蹤擴展政策，該叢集可與 ElastiCache Auto Scaling 中的目標追蹤搭配使用。目前，ElastiCache 在 ElastiCache 複本 Auto Scaling 中支援下列預先定義的指標：

`ElastiCacheReplicaEngineCPUUtilization` – 叢集中所有複本在 CloudWatch 中 EngineCPUUtilization 指標的平均值。您可以在 ElastiCache 下的 CloudWatch 中找到`ReplicationGroupId, Role`所需的 ReplicationGroupId 和角色複本的彙總指標值。

若要在您的規模調整政策中使用預先定義的指標，請為規模調整政策建立目標追蹤組態設定。此組態設定必須加入用於預先定義指標的 `PredefinedMetricSpecification`，以及用於該指標目標值的 `TargetValue`。

### 使用自訂的指標
<a name="AutoScaling-Custom-Metric"></a>

使用自訂的指標，您可以定義目標追蹤規模調整政策來滿足您的自訂需求。您可以根據隨擴展比例變更的任何 ElastiCache for Valkey 和 Redis OSS 指標來定義自訂指標。並非所有 ElastiCache 指標都適用於目標追蹤。指標必須是有效的使用率指標，而且能夠表示執行個體的忙碌程度。指標的值必須根據叢集中複本的數量依比例增加或減少。若要使用指標資料來依比例增加或減少碎片數量，這樣子成比例的增加或減少是必要的。

**Example**  
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，自訂指標會根據名為 的叢集中所有複本的平均 CPU 使用率 50% 來調整叢集`my-db-cluster`。  

```
{"TargetValue": 50,
    "CustomizedMetricSpecification":
    {"MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {"Name": "ReplicationGroup","Value": "my-db-cluster"},
            {"Name": "Role","Value": "REPLICA"}
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

### 使用冷卻時間
<a name="AutoScaling-Using-Cooldowns"></a>

您可以指定一個值 (單位為秒)，讓 `ScaleOutCooldown` 新增冷卻時間以便水平擴展您的叢集。同樣的，您可以指定一個值 (單位為秒)，讓 `ScaleInCooldown` 新增冷卻時間以便為您的叢集縮減規模。如需有關 `ScaleInCooldown` 和 `ScaleOutCooldown` 的詳細資訊，請參閱 *Application Auto Scaling API 參考*中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，`ElastiCacheReplicaEngineCPUUtilization`預先定義的指標會根據該叢集中所有複本的平均 CPU 使用率 40% 來調整叢集。這個組態設定分別提供了 10 分鐘的規模縮減冷卻時間，和 5 分鐘的規模擴展冷卻時間。

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```

### 停用規模縮減活動
<a name="AutoScaling-Disabling-Scalein"></a>

您可以停用縮減活動，防止目標追蹤擴展政策組態在 ElastiCache for Valkey 和 Redis OSS 叢集中擴展。停用規模縮減的動作，可防止規模調整政策刪除複本，同時讓規模調整政策仍然能視需要新增複本。

您可以為 `DisableScaleIn` 指定布林值，以啟用或停用 叢集的規模縮減活動。如需有關 `DisableScaleIn` 的詳細資訊，請參閱 *Application Auto Scaling API 參考*中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

**Example**  
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中，`ElastiCacheReplicaEngineCPUUtilization`預先定義的指標會根據該叢集中所有複本的平均 CPU 使用率 40% 來調整叢集。此組態設定停用了規模調整政策的規模縮減動作。

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

### 將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集
<a name="AutoScaling-Applying-Policy"></a>

向 ElastiCache for Valkey 和 Redis OSS 自動擴展註冊叢集並定義擴展政策之後，您可以將擴展政策套用至已註冊的叢集。若要將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集，您可以使用 AWS CLI 或 Application Auto Scaling API。

**使用 AWS CLI**

若要將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集，請使用 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html) 命令搭配下列參數：
+ --policy-name - 規模調整政策的名稱。
+ --policy-type - 將此值設為 `TargetTrackingScaling`。
+ --resource-id – 叢集的資源識別符。在此參數中，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ --service-namespace - 將此值設為 elasticache。
+ --scalable-dimension - 將此值設定為 `elasticache:replication-group:Replicas`。
+ --target-tracking-scaling-policy-configuration – 要用於叢集的目標追蹤擴展政策組態。

**Example**  
在下列範例中，您將名為 的目標追蹤擴展政策套用`myscalablepolicy`到`myscalablecluster`使用 ElastiCache 自動擴展名為 的叢集。做法是使用儲存於 `config.json` 檔案中的政策組態設定。

針對 Linux、macOS 或 Unix：

```
aws application-autoscaling put-scaling-policy \
    --policy-name myscalablepolicy \
    --policy-type TargetTrackingScaling \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:Replicas \
    --target-tracking-scaling-policy-configuration file://config.json
```

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

針對 Windows：

```
aws application-autoscaling put-scaling-policy ^
    --policy-name myscalablepolicy ^
    --policy-type TargetTrackingScaling ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:Replicas ^
    --target-tracking-scaling-policy-configuration file://config.json
```

**使用 API**

若要使用 Application Auto Scaling API 將擴展政策套用至 ElastiCache 叢集，請使用 [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) Application Auto Scaling API 操作搭配下列參數：
+ PolicyName - 規模調整政策的名稱。
+ PolicyType - 將此值設為 `TargetTrackingScaling`。
+ ResourceID – 叢集的資源識別符。在此參數中，資源類型為 ReplicationGroup，唯一識別符為 ElastiCache for Redis OSS 叢集的名稱，例如 `replication-group/myscalablecluster`。
+ ServiceNamespace - 將此值設為 elasticache。
+ ScalableDimension - 將此值設為 `elasticache:replication-group:Replicas`。
+ TargetTrackingScalingPolicyConfiguration – 要用於叢集的目標追蹤擴展政策組態。

**Example**  
在下列範例中，您將名為 的目標追蹤擴展政策套用`scalablepolicy`到`myscalablecluster`使用 ElastiCache 自動擴展名為 的叢集。您使用的政策組態設定，是以 `ElastiCacheReplicaEngineCPUUtilization` 這個預先定義的指標為根據。

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 40.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
        }
    }
}
```

# 編輯擴展原則
<a name="AutoScaling-Editing-Policy"></a>

您可以使用 AWS 管理主控台、 AWS CLI或 Application Auto Scaling API 編輯擴展政策。

**使用 編輯擴展政策 AWS 管理主控台**

您只能使用 AWS 管理主控台來編輯具有預先定義指標類型的政策

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**

1. 選擇要新增政策至其中的叢集 (請選擇叢集名稱而非其左側的按鈕)。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 根據 **Scaling policies** (擴展政策)，找到您要變更的自動擴展政策，並選擇 **Modify** (修改)。

1. 對政策進行必要的變更。

1. 選擇 **Modify** (修改)。

1. 對政策進行變更。

1. 選擇 **Modify** (修改)。

**使用 AWS CLI 或 Application Auto Scaling API 編輯擴展政策 **

您可以使用 AWS CLI 或 Application Auto Scaling API，以套用擴展政策的相同方式編輯擴展政策：
+ 使用 Application Auto Scaling API 時，請在 `PolicyName` 參數中指定您所要編輯之政策的名稱。針對您想要變更的參數指定新的參數值。

如需詳細資訊，請參閱[將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集](AutoScaling-Defining-Policy.md#AutoScaling-Applying-Policy)。

# 刪除擴展原則
<a name="AutoScaling-Deleting-Policy"></a>

您可以使用 AWS 管理主控台、 AWS CLI 或 Application Auto Scaling API 刪除擴展政策

**使用 刪除擴展政策 AWS 管理主控台**

您只能使用 AWS 管理主控台來編輯具有預先定義指標類型的政策

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**

1. 選擇您要刪除其 Auto Scaling 政策的叢集。

1. 選擇 **Auto Scaling policies (Auto Scaling 政策)** 索引標籤。

1. 在 **Scaling Policies** (擴展政策) 區段中，選擇自動擴展政策，然後選擇 **Delete** (刪除)。

**使用 AWS CLI 或 Application Auto Scaling API 刪除擴展政策 **

您可以使用 AWS CLI 或 Application Auto Scaling API，從 ElastiCache 叢集刪除擴展政策。

**CLI**

若要從 ElastiCache for Valkey 和 Redis OSS 叢集中刪除擴展政策，請使用 [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) 命令搭配下列參數：
+ --policy-name - 規模調整政策的名稱。
+ --resource-id – 叢集的資源識別符。在此參數中，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ --service-namespace - 將此值設為 elasticache。
+ --scalable-dimension - 將此值設定為 `elasticache:replication-group:Replicas`。

**Example**  
在下列範例中，會將名為 `myscalablepolicy` 的目標追蹤擴展政策，從名為 `myscalablecluster` 的 ELC; 叢集中刪除。

若為 Linux、macOS 或 Unix：

```
aws application-autoscaling delete-scaling-policy \
    --policy-name myscalablepolicy \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:Replicas \
```

針對 Windows：

```
aws application-autoscaling delete-scaling-policy ^
    --policy-name myscalablepolicy ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:Replicas ^
```

**API**

若要從 ElastiCache for Valkey 和 Redis OSS 叢集刪除擴展政策，請使用 [DeleteScalingPolicy](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_DeleteScalingPolicy.html) Application Auto Scaling API 操作搭配下列參數：
+ PolicyName - 規模調整政策的名稱。
+ ResourceID – 叢集的資源識別符。在此參數中，資源類型為 ReplicationGroup，唯一識別符為叢集的名稱，例如 `replication-group/myscalablecluster`。
+ ServiceNamespace - 將此值設為 elasticache。
+ ScalableDimension - 將此值設為 `elasticache:replication-group:Replicas`。

在下列範例中，您會`myscalablepolicy`使用 Application Auto Scaling API 從名為 `myscalablecluster`的叢集中刪除名為 的目標追蹤擴展政策。

```
POST / HTTP/1.1
>>>>>>> mainline
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas"
}
```

# CloudFormation 使用 Auto Scaling 政策
<a name="AutoScaling-with-Cloudformation"></a>

此程式碼片段顯示如何建立排定的動作，並使用資源 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 將其套用到 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 資源。其使用 [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 和 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 內部函數來建構 `ResourceId` 屬性，該屬性具有相同範本中指定的 `AWS::ElastiCache::ReplicationGroup` 資源的邏輯名稱。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      ScalingTargetId: !Ref ScalingTarget
      ServiceNamespace: elasticache
      PolicyName: testpolicy
      PolicyType: TargetTrackingScaling
      ScalableDimension: 'elasticache:replication-group:Replicas'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCacheReplicaEngineCPUUtilization
        TargetValue: 40
```

# 排程擴展
<a name="AutoScaling-with-Scheduled-Scaling-Replicas"></a>

按照排程進行擴展讓您能夠因應可預測的需求變化，據以擴展您的應用程式。若要使用排程擴展，您可以建立排程動作，指示 ElastiCache for Valkey 和 Redis OSS 在特定時間執行擴展活動。當您建立排程動作時，您可以指定現有的 ElastiCache 叢集、應進行擴展活動的時間、最小容量和最大容量。您可以建立僅擴展一次或依週期性排程擴展的排程動作。

 您只能為已存在的 ElastiCache 叢集建立排程動作。您無法在建立叢集的同時建立排程動作。

如需排程動作建立、管理和刪除作業相關術語的詳細資訊，請參閱[排程動作建立、管理和刪除作業常用的命令](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands) 

**建立一次性排程動作：**

類似於碎片維度。請參閱 [排程擴展](AutoScaling-with-Scheduled-Scaling-Shards.md)。

**刪除排程動作**

類似於碎片維度。請參閱 [排程擴展](AutoScaling-with-Scheduled-Scaling-Shards.md)。

**使用 AWS CLI 管理排定的擴展**

使用下列 application-autoscaling API：
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html) 

## 使用 CloudFormation 建立 Auto Scaling 政策
<a name="AutoScaling-with-Cloudformation-Update-Action"></a>

此程式碼片段顯示如何建立排定的動作，並使用資源 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 將其套用到 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 資源。其使用 [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 和 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 內部函數來建構 `ResourceId` 屬性，該屬性具有相同範本中指定的 `AWS::ElastiCache::ReplicationGroup` 資源的邏輯名稱。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```

# 修改叢集模式
<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` 的形式傳回。

# 使用全域資料存放區跨AWS區域複寫
<a name="Redis-Global-Datastore"></a>

**注意**  
全域資料存放區目前僅適用於節點型叢集。

透過使用全域資料存放區功能，您可以跨AWS區域使用全受管、快速、可靠且安全的 Valkey 或 Redis OSS 叢集複寫。使用此功能，您可以建立跨區域僅供讀取複本叢集，以跨AWS區域啟用低延遲讀取和災難復原。

在以下各節中，您可以找到如何使用全域資料存放區的描述。

**Topics**
+ [概觀](#Redis-Global-Data-Stores-Overview)
+ [先決條件和限制](Redis-Global-Datastores-Getting-Started.md)
+ [使用全域資料存放區 (主控台)](Redis-Global-Datastores-Console.md)
+ [使用全域資料存放區 (CLI)](Redis-Global-Datastores-CLI.md)

## 概觀
<a name="Redis-Global-Data-Stores-Overview"></a>

每個*全域資料存放區*都是一個或多個叢集的集合，用於彼此複寫。

全域資料存放區由下列項目組成：
+ **主要 (主動) 叢集** - 主要叢集接受複寫到全域資料存放區內所有叢集的寫入。主要叢集也接受讀取請求。
+ **次要 (被動) 叢集** - 次要叢集只接受讀取要求，並從主要叢集複寫資料更新。次要叢集必須位於與主要叢集不同的AWS區域。

當您在 ElastiCache for Valkey 或 Redis OSS 中建立全域資料存放區時，它會自動將您的資料從主要叢集複寫到次要叢集。您可以選擇複寫 Valkey 或 Redis OSS 資料的AWS區域，然後在該區域中建立次要叢集AWS。然後 ElastiCache 會設定和管理兩個叢集之間的自動非同步資料複寫。

使用適用於 Valkey 或 Redis OSS 的全域資料存放區具有下列優點：
+ **地理效能** – 透過在其他AWS區域中設定遠端複本叢集並在它們之間同步資料，您可以減少該AWS區域中的資料存取延遲。全域資料存放區可以透過跨AWS區域提供低延遲的地理本機讀取，協助提高應用程式的回應能力。
+ **災難復原** - 如果全域資料存放區中的主要叢集發生降級，您可以將次要叢集升級為新的主要叢集。您可以透過連接到包含次要叢集的任何AWS區域來執行此操作。

下圖顯示了全域資料存放區如何運作。

![\[全域資料存放區\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Global-DataStore.png)


# 先決條件和限制
<a name="Redis-Global-Datastores-Getting-Started"></a>

在開始使用全域資料存放區之前，請注意下列事項：
+ 下列 AWS 區域支援全域資料存放區：
  + **非洲** - 開普敦
  + **亞太區域** - 香港、海德拉巴、雅加達、馬來西亞、墨爾本、孟買、大阪、首爾、新加坡、雪梨、泰國和東京 
  + **加拿大** - 加拿大中部和加拿大西部 （卡加利）
  + **中國** - 北京和寧夏
  + **歐洲 ** - 法蘭克福、倫敦、愛爾蘭、米蘭、巴黎、西班牙、斯德哥爾摩和蘇黎世
  + **AWS GovCloud** -美國西部和美國東部
  + **以色列** - 特拉維夫
  + **中東** - 巴林和阿拉伯聯合大公國
  + **美國** - 東部 （維吉尼亞北部和俄亥俄） 和美國西部 （加利佛尼亞北部和奧勒岡）
  + **南美洲** - 墨西哥 （中部） 和聖保羅
+  全域資料存放區中的所有叢集 (主要和次要) 應具有相同數量的主節點、節點類型、引擎版本和碎片數量 (在啟用叢集模式的情況下)。全域資料存放區中的每個叢集都可以擁有不同數量的僅供讀取複本，以容納該叢集的本機讀取流量。

  如果您計劃使用現有的單一節點叢集，則必須啟用複寫。
+ 大型和以上大小的執行個體支援全域資料存放區。
+ 您可以為主要叢集設定複寫，從一個 AWS 區域到最多兩個其他 AWS 區域中的次要叢集。
**注意**  
例外情況是中國 (北京) 區域和中國 (寧夏) 區域，在兩個區域之間只能進行複寫。
+ 您只能在 VPC 叢集中使用全域資料存放區。如需詳細資訊，請參閱[用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)。當您使用 EC2-Classic 時，不支援全域資料存放區。如需詳細資訊，請參閱《Amazon EC2 使用者指南》中的 [EC2-Classic](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-classic-platform.html)。 *Amazon EC2 *
**注意**  
目前無法在 [搭配 ElastiCache 使用本地區域](Local_zones.md) 使用全域資料存放區。
+ ElastiCache 不支援從一個區域自動容錯移轉到另一個 AWS 區域。必要時，您可以手動升級次要叢集。如需範例，請參閱「[將次要叢集升級為主要叢集](Redis-Global-Datastores-Console.md#Redis-Global-Datastores-Console-Promote-Secondary)」。
+ 若要從現有資料啟動，請使用現有叢集做為主要叢集以建立全域資料存放區。我們不支援將現有叢集新增為次要叢集。將叢集新增為次要叢集的程序會清除資料，這可能會導致資料遺失。
+ 當您修改屬於全域資料存放區之叢集的本機參數群組時，參數更新會套用至所有叢集。
+ 您可以利用垂直方式 (擴展和縮減) 和水平方式 (橫向縮減和擴展) 來擴展區域叢集。您可以透過修改全域資料存放區來擴展叢集。全域資料存放區中的所有區域叢集隨後便會進行擴展，而不會發生中斷。如需詳細資訊，請參閱[擴展 ElastiCache](Scaling.md)。
+ 全域資料存放區支援[靜態加密](at-rest-encryption.md)、[傳輸中加密](in-transit-encryption.md)和 [AUTH](auth.md)。
+ 全域資料存放區不支援網際網路通訊協定第 6 版 (IPv6)。
+  全域資料存放區支援 AWS KMS 金鑰。如需詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的 [AWS KMS 金鑰管理服務概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)。

**注意**  
全域資料存放區支援[發佈/訂閱簡訊](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/elasticache-use-cases.html#elasticache-for-redis-use-cases-messaging)，規定如下：  
若是停用叢集模式，完全支援發佈/訂閱簡訊。在主要 AWS 區域的主要叢集上發佈的事件會傳播到次要 AWS 區域。
若是啟用叢集模式，適用下列條件：  
對於不在金鑰空間中的已發佈事件，只有相同區域中的訂閱者 AWS 會收到事件。
對於已發佈的金鑰空間事件，所有 AWS 區域中的訂閱者都會收到事件。

# 使用全域資料存放區 (主控台)
<a name="Redis-Global-Datastores-Console"></a>

若要使用主控台建立全域資料存放區，請遵循下列兩個步驟程序：

1. 使用現有叢集或建立新叢集，來建立主要叢集。引擎必須是 Valkey 7.2 或更新版本，或 Redis OSS 5.0.6 或更新版本。

1. 在不同的 AWS 區域中新增最多兩個次要叢集，再次使用 Valkey 7.2 或更新版本，或 Redis OSS 5.0.6 或更新版本。

下列程序引導您如何為 Valkey 或 Redis OSS 建立全域資料存放區，並使用 ElastiCache 主控台執行其他操作。

**Topics**
+ [使用現有叢集建立全域資料存放區](#Redis-Global-Datastores-Console-Create-Primary)
+ [使用新的主要叢集建立新的全域資料存放區](#Redis-Global-Datastores-Create-From-Scratch)
+ [檢視全域資料存放區詳細資訊](#Redis-Global-Datastores-Console-Details)
+ [將區域新增至全域資料存放區](#Redis-Global-Datastores-Console-Create-Secondary)
+ [修改全域資料存放區](#Redis-Global-Datastores-Console-Modify-Regional-Clusters)
+ [將次要叢集升級為主要叢集](#Redis-Global-Datastores-Console-Promote-Secondary)
+ [從全域資料存放區移除區域](#Redis-Global-Datastore-Console-Remove-Region)
+ [刪除全域資料存放區](#Redis-Global-Datastores-Console-Delete-GlobalDatastore)

## 使用現有叢集建立全域資料存放區
<a name="Redis-Global-Datastores-Console-Create-Primary"></a>

在此案例中，您使用現有的叢集做為新全域資料存放區的主要叢集。然後您可以在不同的 AWS 區域中建立次要唯讀叢集。這個次要叢集會從主要叢集接收自動的非同步更新。

**重要**  
現有叢集必須使用 Valkey 7.2 或更新版本的引擎，或 Redis OSS 5.0.6 或更新版本的引擎。

**使用現有叢集建立全域資料存放區**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**，然後選擇**建立全域資料存放區**。

1. 在**主要叢集設定**頁面上，執行下列動作：
   + 在**全域資料存放區資訊**欄位中，輸入新全域資料存放區的名稱。
   + (選用) 輸入 **Description (描述)** 值。

1. 在**區域叢集**下，選取**使用現有的區域叢集**。

1. 在**現有叢集**下，選取您要使用的現有叢集。

1. 保持以下選項不變。它們會預先填入以符合主要叢集組態，您無法變更它們。
   + 引擎版本
   + 節點類型
   + 參數群組
**注意**  
ElastiCache 會自動從所提供的參數群組值產生新的參數群組，並將新參數群組套用至叢集。使用此新參數群組可修改全域資料存放區上的參數。每個自動產生的參數群組都只與一個叢集相關聯，因此也只與一個全域資料存放區相關聯。
   + 碎片數量
   + Encryption at rest (靜態加密) - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](at-rest-encryption.md)。
**注意**  
您可以選擇**客戶受管 AWS KMS** 金鑰並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用客戶受管 AWS KMS 金鑰](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
   + Encryption in-transit (傳輸中加密) - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](in-transit-encryption.md)。對於 Valkey 7.2 及更新版本和 Redis OSS 6.0 及更新版本，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
     + **No Access Control (無存取控制)** - 這是預設的設定。這表示沒有任何限制。
     + **User Group Access Control List (使用者群組存取控制清單)** - 選擇具有已定義的一組使用者和可用作業許可的使用者群組。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
     + **AUTH 預設使用者** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。

1. (選用) 視需要更新其餘的次要叢集設定。這些值會預先填入與主要叢集相同的值，但您可以更新它們以符合該叢集的特定需求。
   + 連線埠
   + 複本數量
   + 子網路群組
   + 偏好的可用區域
   + 安全群組
   + 客戶受管 (AWS KMS 金鑰）
   + AUTH 字符
   + 啟用自動備份
   + Backup retention period (備份保留期間)
   + 備份時段
   + Maintenance window (維護時段)
   + SNS 通知的主題

1. 選擇**建立**。這樣做會將全域資料存放區的狀態設定為 **Creating (正在建立)**。狀態轉變為 **Modifying (修改中)**之後，主要叢集便與全域資料存放區建立關聯，且次要叢集處於 **Associating (建立關聯中)**狀態。

   在主要叢集和次要叢集皆關聯至全域資料存放區之後，狀態會變更為 **Available (可用)**。此時，您已具備接受讀取和寫入的主要叢集，以及接受從主要叢集複寫之讀取的次要叢集。

   此頁面已更新，指出叢集是否為全域資料存放區的一部分，包括：
   + **Global Datastore (全域資料存放區)** - 叢集所屬全域資料存放區的名稱。
   + **Global Datastore Role (全域資料存放區角色)** - 主要或次要叢集的角色。

您最多可以在不同的區域中新增一個額外的次要叢集 AWS 。如需詳細資訊，請參閱[將區域新增至全域資料存放區](#Redis-Global-Datastores-Console-Create-Secondary)。

## 使用新的主要叢集建立新的全域資料存放區
<a name="Redis-Global-Datastores-Create-From-Scratch"></a>

如果您選擇以新叢集建立全域資料存放區，請依照下列程序操作。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**，然後選擇**建立全域資料存放區**。

1. 在 **Primary cluster settings** (主要叢集設定) 中，執行下列動作：

   1. 針對 **Cluster mode** (叢集模式)，選擇 **Enabled** (已啟用) 或 **Disabled** (已停用)。

   1. 針對 **Global Datastore info** (全域資料存放區資訊)，輸入 **Name** (名稱) 的值。ElastiCache 會使用此尾碼來產生全域資料存放區的唯一名稱。您可以使用您在此處指定的尾碼來搜尋全域資料存放區。

   1. (選用) 輸入 **Global Datastore Description (全域資料存放區描述)** 的值。

1. 在 **Regional cluster** (區域叢集) 中：

   1. 針對**區域**，選擇可用的 AWS 區域。

   1. 選擇 **Create new regional cluster** (建立新的區域叢集)，或 **Use existing regional cluster** (使用現有的區域叢集)

   1. 如果選擇 **Create new regional cluster** (建立新的區域叢集)，請在 **Cluster info** (叢集資訊) 中，輸入叢集的名稱和選用描述。

   1. 在 **Location** (位置) 中，建議您接受 **Multi-AZ** (多可用區域) 和 **Auto-failover** (自動容錯移轉) 的預設設定。

1. 在 **Cluster settings** (叢集設定) 中

   1. 針對 **Engine version** (引擎版本)，選擇可用版本，即 5.0.6 或更新版本。

   1. 針對 **Port** (連接埠)，使用預設連接埠 6379。如果您基於任何原因需要使用不同的連接埠，請輸入連接埠號碼。

   1. 對於 **Parameter group (參數群組)**，請選擇參數群組或新建參數群組。參數群組可控制叢集的執行時間參數。如需參數群組的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)和[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。
**注意**  
當您選取參數群組來設定引擎組態值時，該參數群組會套用至全域資料存放區中的所有叢集。在 **Parameter Groups (參數群組)** 頁面上，yes/no (是/否) **Global (全域)** 屬性指出參數群組是否為全域資料存放區的一部分。

   1. 在 **Node type (節點類型)** 中，選擇向下箭頭 (![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))。在 **Change node type (變更節點類型)** 對話方塊中，為您想要的節點類型選擇 **Instance family (執行個體系列)** 的值。然後選擇您要用於此叢集的節點類型，然後選擇 **Save (儲存)**。

      如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

      如果選擇 r6gd 節點類型，將自動啟用資料分層。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

   1. 如果您要建立 Valkey 或 Redis OSS （停用叢集模式） 叢集：

      針對 **Number of replicas** (複本數)，選擇您要讓此叢集具備的複本數目。

   1. 如果您要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集：

      1. 針對**碎片數量**，選擇您希望此 Valkey 或 Redis OSS （啟用叢集模式） 叢集的碎片數量 （分割區/節點群組）。

         對於某些版本的 Valkey 或 Redis OSS （啟用叢集模式），您可以動態變更叢集中的碎片數量：
         + **Redis OSS 3.2.10 和更新版本** – 如果您的叢集正在執行 Redis OSS 3.2.10 或更新版本，您可以動態變更叢集中的碎片數量。如需詳細資訊，請參閱[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。
         + **其他 Redis OSS 版本** – 如果您的叢集在 3.2.10 版之前執行 Redis OSS 版本，則有另一種方法。在這種情況下，若要變更叢集中的碎片數量，請使用新的碎片數量建立新的叢集。如需詳細資訊，請參閱[從備份還原到新的快取](backups-restoring.md)。

      1. 針對 **Replicas per shard (每個碎片的複本)**，選擇您要讓每個碎片具備的僅供讀取複本節點數目。

         下列限制適用於 Valkey 或 Redis OSS （啟用叢集模式）。
         + 如果您已啟用多個可用區，請確保每個碎片至少有一個複本。
         + 使用主控台建立叢集時，每個碎片的複本數都相同。
         + 每個碎片的僅供讀取複本數均固定而無法變更。如果您發現每個碎片 (API/CLI：節點群組) 需要更多或更少的複本，則必須使用新的複本數來建立新叢集。如需詳細資訊，請參閱[教學課程：使用外部建立的備份植入新的節點型叢集](backups-seeding-redis.md)。

1. 針對 **Subnet group settings** (子網路群組設定)，選擇要套用至此叢集的子網路。ElastiCache 提供預設 IPv4 子網路群組，或者您可以選擇建立新的子網路群組。針對 IPv6，您必須建立具有 IPv6 CIDR 區塊的子網路群組。若您選擇 **dual stack** (雙堆疊)，則須選取 IPv6 或 IPv4 做為探索 IP 類型。

   如需詳細資訊，請參閱[在您的 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

1. 針對 **Availability zone placements** (可用區域置放)，您有兩種選項：
   + **No preference (無偏好設定)** - ElastiCache 會選擇可用區域。
   + **Specify availability zones (指定可用區域)** - 您可為每個叢集指定可用區域。

     如果您選擇指定可用區域，請針對每個碎片中的每個叢集，從清單中選擇可用區域。

   如需詳細資訊，請參閱[選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)。  
![\[圖片：指定 Keyspace 和可用區域\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-ClusterOn-Slots-AZs.png)

   *指定 Keyspace 和可用區域*

1. 選擇 **Next** (下一步)

1. 在**進階 Valkey 和 Redis OSS 設定**下

   1. 針對 **Security** (安全)：

     1. 若要加密資料，您有下列選項：
        + **Encryption at rest (靜態加密)** - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](at-rest-encryption.md)。
**注意**  
您可以選擇**客戶受管 AWS KMS 金鑰**並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用來自 AWS KMS 的客戶受管金鑰](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
        + **Encryption in-transit (傳輸中加密)** - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](in-transit-encryption.md)。針對 Valkey 7.2 及更高版本，以及 Redis OSS 6.0 及更高版本，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
          + **No Access Control (無存取控制)** - 這是預設的設定。這表示使用者存取叢集時不受任何限制。
          + **User Group Access Control List (使用者群組存取控制清單)** - 選取的使用者群組需具有可存取叢集的已定義使用者集。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
          + **AUTH 預設使用者** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
        + **AUTH** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
**注意**  
對於 3.2.6 以上版本的 Redis OSS，除了 3.2.10 版之外，AUTH 是唯一的選項。

     1. 在 **Security groups (安全群組)** 中，選擇要用於此叢集的安全群組。*安全群組*可做為防火牆來控制叢集的網路存取。您可以為 VPC 使用預設安全群組，或建立新的安全群組。

        如需安全群組的詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

1. 針對定期排程自動備份，請選取 **Enable automatic backups (啟用自動備份)**，然後輸入每份自動備份要保存的天數，過了此天數後即會自動將其刪除。如果您不想定期排程自動備份，請清除 **Enable automatic backups (啟用自動備份)** 核取方塊。在任何一種情況下，您都可以選擇建立手動備份。

   如需備份和還原的詳細資訊，請參閱 [快照和還原](backups.md)。

1. (選用) 指定維護時段。*維護時段*是 ElastiCache 排程的每週叢集系統維護時間，通常長度為一小時。您可以讓 ElastiCache 選擇維護時段的日期和時間 (*No preference* (無偏好設定))，或自行選擇日期、時間和持續時間 (*Specify maintenance window* (指定維護時段))。如果您從清單中選擇 *Specify maintenance window (指定維護時段)*，請為您的維護時段選擇 *Start day (開始日)*、*Start time (開始時間)* 和 *Duration (持續時間)*。所有時間均以 UCT 時間表示。

   如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

1. (選用) 針對 **Logs (日誌)**：
   + 在 **Log format (日誌格式)** 下，選擇 **Text (文字)** 或 **JSON**。
   + 在 **Destination Type (目的地類型)** 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。
   + 在**日誌目的地**下，選擇**建立新** ，然後輸入您的 CloudWatch Logs 日誌群組名稱或 Firehose 串流名稱，或選擇**選取現有**，然後選擇您的 CloudWatch Logs 日誌群組名稱或您的 Firehose 串流名稱。

1. 針對 **Tags** (標籤)，為協助您管理叢集和其他 ElastiCache 資源，您可以用標籤形式將自己的中繼資料指派給每個資源。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

1. 檢閱所有項目和選項，然後進行任何所需的更正。就緒後，請選擇 **Next** (下一步)。

1. 在上述步驟中設定叢集之後，現在設定次要叢集詳細資訊。

1. 在**區域叢集**下，選擇 叢集所在的 AWS 區域。

1. 在 **Cluster info** (叢集資訊) 中，輸入叢集的名稱和選用描述。

1. 下列選項會預先填入以符合主要叢集組態，且無法變更：
   + 位置
   + 引擎版本
   + 執行個體類型
   + 節點類型
   + 碎片數量
   + 參數群組
**注意**  
ElastiCache 會自動從所提供的參數群組值產生新的參數群組，並將新參數群組套用至叢集。使用此新參數群組可修改全域資料存放區上的參數。每個自動產生的參數群組都只與一個叢集相關聯，因此也只與一個全域資料存放區相關聯。
   + Encryption at rest (靜態加密) - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](at-rest-encryption.md)。
**注意**  
您可以選擇**客戶受管 AWS KMS** 金鑰並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用客戶受管 AWS KMS 金鑰](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
   + Encryption in-transit (傳輸中加密) - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](in-transit-encryption.md)。對於 Valkey 7.2 及更高版本，以及 Redis OSS 6.4 及更高版本，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
     + **No Access Control (無存取控制)** - 這是預設的設定。這表示使用者存取叢集時不受任何限制。
     + **User Group Access Control List (使用者群組存取控制清單)** - 選擇的使用者群組需具有可存取叢集的已定義使用者集。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
     + **AUTH 預設使用者** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
**注意**  
對於 4.0.2 和 6.0.4 之間的 Redis OSS 版本，當第一次支援傳輸中加密時，AUTH 是唯一的選項。

   其餘的次要叢集設定會預先填入與主要叢集相同的值，但是可以更新下列項目以符合該叢集的特定需求：
   + 連線埠
   + 複本數量
   + 子網路群組
   + 偏好的可用區域 
   + 安全群組
   + 客戶受管 (AWS KMS 金鑰） 
   + AUTH 字符
   + 啟用自動備份
   + Backup retention period (備份保留期間)
   + 備份時段
   + Maintenance window (維護時段)
   + SNS 通知的主題

1. 選擇**建立**。這樣做會將全域資料存放區的狀態設定為 **Creating (正在建立)**。在主要叢集和次要叢集皆關聯至全域資料存放區之後，狀態會變更為 **Available (可用)**。您已具備接受讀取和寫入的主要叢集，以及接受從主要叢集複寫之讀取的次要叢集。

   此頁面也會更新，以指出叢集是否為全域資料存放區的一部分，包括下列項目：
   + **Global Datastore (全域資料存放區)** - 叢集所屬全域資料存放區的名稱。
   + **Global Datastore Role (全域資料存放區角色)** - 主要或次要叢集的角色。

您最多可以在不同的區域中新增一個額外的次要叢集 AWS 。如需詳細資訊，請參閱[將區域新增至全域資料存放區](#Redis-Global-Datastores-Console-Create-Secondary)。

## 檢視全域資料存放區詳細資訊
<a name="Redis-Global-Datastores-Console-Details"></a>

您可以在全域資料存放區頁面檢視現有**全域資料存放**區的詳細資訊，也可以修改它們。

**檢視全域資料存放區詳細資訊**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**，然後選擇可用的全域資料存放區。

接著，您可以檢查下列全域資料存放區屬性：
+ **全域資料存放區名稱：**全域資料存放區的名稱
+ **描述：**全域資料存放區的描述
+ **狀態：**選項包括：
  + 正在建立
  + Modifying (正在修改)
  + 可用性
  + 正在刪除
  + Primary-Only (僅限主要) - 此狀態表示全域資料存放區僅包含主要叢集。所有次要叢集都已刪除或未成功建立。
+ **叢集模式：**啟用或停用
+ **引擎版本：**執行全域資料存放區的 Valkey 或 Redis OSS 引擎版本
+ **執行個體節點類型：**用於全域資料存放區的節點類型
+ **靜態加密：**啟用或停用
+ **傳輸中加密：**啟用或停用
+ **AUTH：**啟用或停用

您可以對全域資料存放區進行下列變更：
+ [將區域新增至全域資料存放區](#Redis-Global-Datastores-Console-Create-Secondary) 
+ [從全域資料存放區移除區域](#Redis-Global-Datastore-Console-Remove-Region) 
+ [將次要叢集升級為主要叢集](#Redis-Global-Datastores-Console-Promote-Secondary)
+ [修改全域資料存放區](#Redis-Global-Datastores-Console-Modify-Regional-Clusters)

全域資料存放區頁面也會列出組成全域資料存放區的個別叢集，以及每個叢集的下列屬性：
+ **區域** - 儲存叢集 AWS 的區域
+ **Role (角色)** - 主要或次要
+ **Cluster name (叢集名稱)** - 叢集的名稱
+ **Status (狀態)** - 選項包括：
  + **Associating (正在關聯)** - 叢集正在與全域資料存放區進行關聯
  + **Associated (已關聯)** - 叢集已關聯至全域資料存放區關聯
  + **Disassociating (正在取消關聯)** - 正在進行從使用全域資料存放區名稱的全域資料存放區移除次要叢集的程序。之後，次要叢集不會再接收來自主要叢集的更新，但會保留為該 AWS 區域中的獨立叢集。
  + **Disassociated (已取消關聯)** - 次要叢集已從全域資料存放區移除，現在是其 AWS 區域中的獨立叢集。
+ **全域資料存放區複本延遲** – 顯示全域資料存放區中每個次要 AWS 區域的一個值。這是次要區域的主節點和主要區域的主節點之間的延遲。對於啟用叢集模式的 Valkey 或 Redis OSS，延遲表示碎片之間的最大延遲秒數。

## 將區域新增至全域資料存放區
<a name="Redis-Global-Datastores-Console-Create-Secondary"></a>

您最多可以將一個額外 AWS 區域新增至現有的全域資料存放區。在此案例中，您要在從主要叢集接收自動和非同步更新的個別 AWS 區域中建立唯讀叢集。

**將 AWS 區域新增至全域資料存放區**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**，然後選取現有的全域資料存放區。

1. 選擇**新增區域叢集**，然後選擇要存放次要叢集 AWS 的區域。

1. 在**叢集資訊**下，輸入**名稱**的值，以及選擇性地輸入叢集的**描述**的值。

1. 保持以下選項不變。這些項目會預先填入以符合主要叢集組態，且您無法加以變更。
   + 引擎版本
   + 執行個體類型
   + 節點類型
   + 碎片數量
   + 參數群組
**注意**  
ElastiCache 會自動從所提供的參數群組值產生新的參數群組，並將新參數群組套用至叢集。使用此新參數群組可修改全域資料存放區上的參數。每個自動產生的參數群組都只與一個叢集相關聯，因此也只與一個全域資料存放區相關聯。
   + 靜態加密
**注意**  
您可以選擇**客戶受管 AWS KMS** 金鑰並選擇金鑰，以提供不同的加密金鑰。
   + 傳輸中加密
   + AUTH

1. (選用) 更新其餘的次要叢集設定。這些值會預先填入與主要叢集相同的值，但您可以更新它們以符合該叢集的特定需求：
   + 連線埠
   + 複本數量
   + 子網路群組
   + 偏好的可用區域
   + 安全群組
   + 客戶受管 AWS KMS 金鑰） 
   + AUTH 字符
   + 啟用自動備份
   + Backup retention period (備份保留期間)
   + 備份時段
   + Maintenance window (維護時段)
   + SNS 通知的主題

1. 選擇**新增**。

## 修改全域資料存放區
<a name="Redis-Global-Datastores-Console-Modify-Regional-Clusters"></a>

您可以修改區域叢集的屬性。除了將次要叢集升級為主要叢集之外，全域資料存放區上一次只能進行一項修改作業。如需詳細資訊，請參閱[將次要叢集升級為主要叢集](#Redis-Global-Datastores-Console-Promote-Secondary)。

**修改全域資料存放區**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放**區，然後在**全域資料存放區名稱**中選擇全域資料存放區。

1. 選擇 **Modify (修改)**，然後選擇下列選項：
   + **Modify description (修改描述)** - 更新全域資料存放區的描述
   + **修改引擎版本** – 只有 Valkey 7.2 和更新版本或 Redis OSS 5.0.6 和更新版本可用。
   + **Modify node type (修改節點類型)** - 可利用垂直方式 (擴充規模和縮減規模) 和水平方式 (橫向縮減和擴展) 來擴展區域叢集。選項包括 R5 和 M5 節點系列。如需節點類型的詳細資訊，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。
   + **Modify Automatic Failover (修改自動容錯移轉)** - 啟用或停用自動容錯移轉功能。當您啟用容錯移轉，而區域叢集中的主節點意外關閉時，ElastiCache 會容錯移轉到其中一個區域複本。如需詳細資訊，請參閱[自動容錯移轉](AutoFailover.md)。

   對於啟用叢集模式的 Valkey 或 Redis OSS 叢集：
   + **Add shards (新增碎片)** - 輸入要新增的碎片數目，並選擇性指定一或多個可用區域。
   + **刪除碎片** – 選擇要在每個 AWS 區域中刪除的碎片。
   + **Rebalance shards (重新平衡碎片)** - 重新平衡位置分佈，確保在叢集中現有的碎片間均勻分佈。

若要修改全域資料存放區的參數，請修改全域資料存放區的任何成員叢集參數群組。ElastiCache 會自動將此變更套用至該全域資料存放區內的所有叢集。若要修改該叢集的參數群組，請使用 Valkey 或 Redis OSS 主控台或 [ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html) API 操作。如需詳細資訊，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。當您修改全域資料存放區中包含之任何叢集的參數群組時，它會套用至該全域資料存放區內的所有叢集。

若要重設整個參數群組或特定參數，請使用 [ResetCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ResetCacheParameterGroup.html) API 操作。

## 將次要叢集升級為主要叢集
<a name="Redis-Global-Datastores-Console-Promote-Secondary"></a>

如果主要叢集或 AWS 區域無法使用或遇到效能問題，您可以將次要叢集提升為主要叢集。即使正在進行其他修改，也可隨時進行升級。您也可以同時發佈多個升級，全域資料存放區最終會解析為一個主要叢集。如果您同時提升多個次要叢集，ElastiCache 無法保證哪個叢集最終解析為主要叢集。

**將次要叢集升級為主要叢集**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**。

1. 選擇全域資料存放區名稱以檢視詳細資訊。

1. 選擇 **Secondary (次要)** 叢集。

1. 選擇 **Promote to primary (升級為主要)**。

   接著系統會提示您確認您的決定，並顯示下列警告：` Promoting a region to primary will make the cluster in this region as read/writable. Are you sure you want to promote the secondary cluster to primary?`

   `The current primary cluster in primary region will become secondary and will stop accepting writes after this operation completes. Please ensure you update your application stack to direct traffic to the new primary region.`

1. 如果您要繼續升級， 請選擇 **Confirm (確認)**，如果不想繼續升級，請選擇 **Cancel (取消)**。

如果您選擇確認，則全域資料存放區會移至**Modifying (正在修改)** 狀態，且在升級完成之前無法使用。

## 從全域資料存放區移除區域
<a name="Redis-Global-Datastore-Console-Remove-Region"></a>

您可以使用下列程序，從全域資料存放區移除 AWS 區域。

**從全域資料存放區移除 AWS 區域**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**。

1. 選擇全域資料存放區。

1. 選擇您要移除的 **Region (區域)**。

1. 選擇 **Remove region (移除區域)**。
**注意**  
此選項僅適用於次要叢集。

   接著系統會提示您確認您的決定，並顯示下列警告：` Removing the region will remove your only available cross region replica for the primary cluster. Your primary cluster will no longer be set up for disaster recovery and improved read latency in remote region. Are you sure you want to remove the selected region from the global datastore?`

1. 如果您要繼續升級， 請選擇 **Confirm (確認)**，如果不想繼續升級，請選擇 **Cancel (取消)**。

如果您選擇確認，則會移除 AWS 區域，次要叢集不會再收到複寫更新。

## 刪除全域資料存放區
<a name="Redis-Global-Datastores-Console-Delete-GlobalDatastore"></a>

若要刪除全域資料存放區，請先移除所有次要叢集。如需詳細資訊，請參閱[從全域資料存放區移除區域](#Redis-Global-Datastore-Console-Remove-Region)。這樣做會使全域資料存放區處於 **primary-only (僅限主要)** 狀態。

**刪除全域資料存放區**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇**全域資料存放區**。

1. 在 **Global Datastore Name (全域資料存放區名稱)** 下，選擇您要刪除的全域資料存放區，然後選擇 **Delete (刪除)**。

   接著系統會提示您確認您的決定，並顯示下列警告：`Are you sure you want to delete this Global Datastore?`

1. 選擇 **刪除**。

全域資料存放區會轉換為 **Deleting (正在刪除)** 狀態。

# 使用全域資料存放區 (CLI)
<a name="Redis-Global-Datastores-CLI"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 從命令列控制多個 AWS 服務，並透過指令碼將其自動化。您可以使用 AWS CLI 進行臨機操作 （一次性）。

## 下載和設定 AWS CLI
<a name="Redis-Global-Datastores-Downloading-CLI"></a>

 AWS CLI 會在 Windows、macOS 或 Linux 上執行。請使用下列程序來下載並進行設定。

**下載、安裝及設定 CLI**

1. 在[AWS 命令列界面](https://aws.amazon.com/cli)網頁上下載 AWS CLI。

1. 遵循*AWS Command Line Interface 《 使用者指南*》中安裝 AWS CLI 和設定 AWS CLI 的指示。

## 將 AWS CLI 與全域資料存放區搭配使用
<a name="Redis-Global-Datastores-Using-CLI"></a>

使用下列 CLI 作業來處理全域資料存放區：
+ [create-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-global-replication-group.html)

  ```
  aws elasticache create-global-replication-group \
     --global-replication-group-id-suffix my global datastore  \
     --primary-replication-group-id sample-repl-group  \
     --global-replication-group-description an optional description of the global datastore
  ```

  建立時，Amazon ElastiCache 會自動將字首套用至全域資料存放區 ID。每個 AWS 區域都有自己的字首。例如，在美國西部 (加利佛尼亞北部) 區域建立的全域資料儲存 ID 都以 "virxk" 開頭，加上您提供的尾碼名稱。尾碼與自動產生的字首結合，可保證跨多個區域的全域資料存放區名稱保持唯一性。

  下表列出每個 AWS 區域及其全域資料存放區 ID 字首。

    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Redis-Global-Datastores-CLI.html)
+  [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) - 使用此作業可透過將全域資料存放區的名稱提供給 `--global-replication-group-id` 參數，為全域資料存放區建立次要叢集。

  ```
  aws elasticache create-replication-group \
    --replication-group-id secondary replication group name \
    --replication-group-description “Replication group description" \
    --global-replication-group-id global datastore name
  ```

  呼叫此操作並傳入`--global-replication-group-id`值時，ElastiCache 會從全域複寫群組的主要複寫群組推斷下列參數的值。請勿傳入這些參數的值：

  `"PrimaryClusterId",`

  `"AutomaticFailoverEnabled",`

  ` "NumNodeGroups",`

  ` "CacheParameterGroupName",`

  ` "CacheNodeType",`

  ` "Engine",`

  ` "EngineVersion",`

  ` "CacheSecurityGroupNames",`

  ` "EnableTransitEncryption",`

  ` "AtRestEncryptionEnabled",`

  ` "SnapshotArns",`

  ` "SnapshotName"`
+ [describe-global-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-global-replication-groups.html)

  ```
  aws elasticache describe-global-replication-groups \
     --global-replication-group-id my global datastore  \
     --show-member-info an optional parameter that returns a list of the primary and secondary clusters that make up the global datastore
  ```
+ [modify-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-global-replication-group.html)

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id my global datastore  \
     --automatic-failover-enabled \
     --cache-node-type node type \
     --cache-parameter-group-name parameter group name \ 
     --engine-version engine version \
     -—apply-immediately \
     --global-replication-group-description description
  ```

  **ElastiCache GlobalDataStore 的 Redis 至 OSS Valkey 跨引擎升級**

  您可以使用主控台、API 或 CLI，將現有的 Redis OSS 全域複寫群組升級至 Valkey。

  如果您有現有的 Redis OSS 全域複寫群組，您可以使用 modify-global-replication-group API 指定新的引擎和引擎版本，以升級至 Valkey。

  若為 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id myGlobalReplGroup \
     --engine valkey \
     --apply-immediately \
     --engine-version 8.0
  ```

  針對 Windows：

  ```
  aws elasticache modify-global-replication-group ^
     --global-replication-group-id myGlobalReplGroup ^
     --engine valkey ^
     --apply-immediately ^
     --engine-version 8.0
  ```

  如果您將自訂快取參數群組套用至要升級的現有 Redis OSS 全域複寫群組，您也需要在請求中傳遞自訂的 Valkey 快取參數群組。輸入 Valkey 自訂參數群組必須與現有的 Redis OSS 自訂參數群組具有相同的 Redis OSS 靜態參數值。

  若為 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id myGlobalReplGroup \
     --engine valkey \
     --engine-version 8.0 \
     --apply-immediately \
     --cache-parameter-group-name myParamGroup
  ```

  針對 Windows：

  ```
  aws elasticache modify-global-replication-group ^
     --global-replication-group-id myGlobalReplGroup ^
     --engine valkey ^
     --engine-version 8.0 ^
     --apply-immediately ^
     --cache-parameter-group-name myParamGroup
  ```
+ [delete-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-global-replication-group.html)

  ```
  aws elasticache delete-global-replication-group \
     --global-replication-group-id my global datastore  \
     --retain-primary-replication-group defaults to true
  ```
+ [disassociate-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/disassociate-global-replication-group.html)

  ```
  aws elasticache disassociate-global-replication-group \
     --global-replication-group-id my global datastore  \
     --replication-group-id my secondary cluster  \
     --replication-group-region the AWS Region in which the secondary cluster resides
  ```
+ [failover-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/failover-global-replication-group.html)

  ```
  aws elasticache failover-replication-group \
     --global-replication-group-id my global datastore \
     --primary-region The AWS Region of the primary cluster \  
     --primary-replication-group-id  The name of the global datastore, including the suffix.
  ```
+ [increase-node-groups-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-node-groups-in-global-replication-group.html)

  ```
  aws elasticache increase-node-groups-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name \
     --node-group-count 3
  ```
+ [decrease-node-groups-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-node-groups-in-global-replication-group.html)

  ```
  aws elasticache decrease-node-groups-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name \
     --node-group-count 3
  ```
+ [rebalance-shards-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/rebalance-slots-in-global-replication-group.html)

  ```
  aws elasticache rebalance-shards-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name
  ```

使用說明列出 ElastiCache for Valkey 或 Redis OSS 的所有可用命令。

```
aws elasticache help
```

您還可以使用說明來描述特定命令，並了解更多關於它的用法：

```
aws elasticache create-global-replication-group help
```

# 使用複寫群組的高可用性
<a name="Replication"></a>

單節點 Amazon ElastiCache Valkey 和 Redis OSS 叢集是具有有限資料保護服務 (AOF) 的記憶體內實體。若您的叢集因任何原因失敗，您會遺失所有叢集的資料。不過，如果您執行 Valkey 或 Redis OSS 引擎，您可以將 2 到 6 個節點分組到具有複本的叢集中，其中 1 到 5 個唯讀節點包含群組單一讀取/寫入主節點的複寫資料。在此案例中，若一個節點因任何原因失敗，因為其已在一或多個其他節點中複寫，因此您也不會遺失所有資料。因為複寫延遲，若失敗的是主要讀取/寫入節點，有些資料可能會遺失。

如下圖所示，複寫結構包含在包含在 Valkey 或 Redis OSS 叢集中的碎片 （在 API/CLI 中稱為*節點群組*) 中。Valkey 或 Redis OSS （停用叢集模式） 叢集一律有一個碎片。Valkey 或 Redis OSS （啟用叢集模式） 叢集最多可以有 500 個碎片，其中叢集的資料分割於碎片。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

使用 ElastiCache for Valkey 和 ElastiCache 5.0.6 版或更新版本的 Redis OSS 時，每個叢集的節點或碎片限制最多可增加至 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

![\[影像：Valkey 或 Redis OSS （停用叢集模式） 叢集有一個碎片和 0 到 5 個複本節點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-Redis-Replicas.png)


*Valkey 或 Redis OSS （停用叢集模式） 叢集有一個碎片和 0 到 5 個複本節點*

若帶有複本的叢集已啟用多個可用區，並且當主要節點故障時，主要節點會容錯移轉至僅供讀取複本。因為資料會以非同步的方式在複本節點上更新，可能會因更新複本節點時發生延遲而導致某些資料遺失。如需詳細資訊，請參閱[緩解執行 Valkey 或 Redis OSS 時的故障](disaster-recovery-resiliency.md#FaultTolerance.Redis)。

**Topics**
+ [了解 Valkey 和 Redis OSS 複寫](Replication.Redis.Groups.md)
+ [複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用](Replication.Redis-RedisCluster.md)
+ [搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低](AutoFailover.md)
+ [同步與備份的實作方式](Replication.Redis.Versions.md)
+ [建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingRepGroup.md)
+ [檢視複寫群組詳細資訊](Replication.ViewDetails.md)
+ [尋找複寫群組端點](Replication.Endpoints.md)
+ [修改複寫群組](Replication.Modify.md)
+ [刪除複寫群組](Replication.DeletingRepGroup.md)
+ [變更複本的數量](increase-decrease-replica-count.md)
+ [針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)

# 了解 Valkey 和 Redis OSS 複寫
<a name="Replication.Redis.Groups"></a>

Redis OSS 以兩種方式實作複寫：
+ 使用包含每個節點中叢集所有資料的單一碎片：Valkey 或 Redis OSS （停用叢集模式）
+ 資料分割最多 500 個碎片：Valkey 或 Redis OSS （啟用叢集模式）

複寫群組中的每個碎片都具備單一讀/寫主節點，以及最多 5 個僅供讀取複本節點。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果 Redis OSS 引擎版本為 5.0.6 或更高版本，節點或碎片限制可以提高到每個叢集最多 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

**Topics**
+ [Valkey 或 Redis OSS （停用叢集模式）](#Replication.Redis.Groups.Classic)
+ [Valkey 或 Redis OSS （啟用叢集模式）](#Replication.Redis.Groups.Cluster)

## Valkey 或 Redis OSS （停用叢集模式）
<a name="Replication.Redis.Groups.Classic"></a>

Valkey 或 Redis OSS （停用叢集模式） 叢集具有單一碎片，其中包含節點集合；一個主要讀取/寫入節點和最多五個次要唯讀複本節點。每個僅供讀取複本都會保有從叢集主要節點取得的資料複本。非同步複寫機制會用於將僅供讀取複本與主要節點保持同步。應用程式可從叢集內的任何節點進行讀取。應用程式只能寫入主要節點。僅供讀取複本可改善讀取輸送量，並在節點故障時保護資料，避免遺失。

![\[影像：具有單一碎片和複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-Redis-Replicas.png)


*具有單一碎片和複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集*

您可以使用具有複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集來擴展您的解決方案，讓 ElastiCache 處理讀取密集型應用程式，或支援同時從相同叢集讀取的大量用戶端。

Valkey 或 Redis OSS （停用叢集模式） 叢集中的所有節點都必須位於相同的區域。

當您將僅供讀取複本新增到叢集時，所有來自主要節點的資料都會複製到新節點。之後，每當資料寫入到主要節點時，變更都會以非同步方式散佈到所有僅供讀取複本。

若要改善容錯能力並減少寫入停機時間，請為具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集啟用具有自動容錯移轉的異地同步備份。如需詳細資訊，請參閱[搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低](AutoFailover.md)。

您可以變更 Valkey 或 Redis OSS （停用叢集模式） 叢集內節點的角色，主要複本和其中一個複本會交換角色。您可能會為了調校效能而執行此作業。例如，針對需要大量寫入活動的 web 應用程式，您可以選擇網路延遲最低的節點。如需詳細資訊，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

## Valkey 或 Redis OSS （啟用叢集模式）
<a name="Replication.Redis.Groups.Cluster"></a>

Valkey 或 Redis OSS （啟用叢集模式） 叢集由 1 到 500 個碎片 (API/CLI：節點群組） 組成。每個碎片都有一個主節點，以及最多 5 個僅供讀取複本節點。組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果引擎版本為 Valkey 7.2 及更高版本，或 Redis OSS 5.0.6 及更高版本，則每個叢集的節點或碎片限制最多可增加至 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

 每個碎片中的僅供讀取複本都會保有從碎片主要節點取得的資料複本。非同步複寫機制會用於將僅供讀取複本與主要節點保持同步。應用程式可從叢集內的任何節點進行讀取。應用程式只能寫入主要節點。僅供讀取複本可增強讀取擴展性及保護資料遺失。資料會分割至 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

應用程式使用 Valkey 或 Redis OSS （啟用叢集模式） 叢集的*組態端點*來與叢集中的節點連線。如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

![\[影像：具有多個碎片和複本節點的 Valkey 或 Redis OSS （啟用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisClusters.png)


*具有多個碎片和複本節點的 Valkey 或 Redis OSS （啟用叢集模式） 叢集*

Valkey 或 Redis OSS （啟用叢集模式） 叢集中的所有節點必須位於相同的區域。若要改善容錯能力，您可以在該區域中的多個可用區域內同時佈建主要節點及僅供讀取複本。

目前，Valkey 或 Redis OSS （啟用叢集模式） 功能有一些限制。
+ 您無法將任何複本節點手動提升為主要節點。

# 複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用
<a name="Replication.Redis-RedisCluster"></a>

從 Valkey 7.2 和 Redis OSS 3.2 版開始，您可以建立兩種不同類型叢集的其中之一 (API/CLI：複寫群組）。Valkey 或 Redis OSS （停用叢集模式） 叢集一律具有單一碎片 (API/CLI：節點群組），最多可有 5 個僅供讀取複本節點。Valkey 或 Redis OSS （啟用叢集模式） 叢集最多有 500 個碎片，每個碎片都有 1 到 5 個僅供讀取複本節點。

![\[影像：Valkey 或 Redis OSS （停用叢集模式），以及 Valkey 或 Redis OSS （啟用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-NodeGroups.png)


*Valkey 或 Redis OSS （停用叢集模式），以及 Valkey 或 Redis OSS （啟用叢集模式） 叢集*

下表摘要說明 Valkey 或 Redis OSS （停用叢集模式） 與 Valkey 或 Redis OSS （啟用叢集模式） 叢集之間的重要差異。


**比較 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集**  

| 功能 | Valkey 或 Redis OSS （停用叢集模式） | Valkey 或 Redis OSS （啟用叢集模式） | 
| --- | --- | --- | 
| 可修改 | 是。支援新增和刪除複本節點，以及向上擴展節點類型。 | 有限。如需更多詳細資訊，請參閱「[ElastiCache 的版本管理](VersionManagement.md)」及「[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)」。 | 
| 資料分割 | 否 | 是 | 
| 碎片 | 1 | 1 到 500  | 
| 僅供讀取複本 | 0 到 5 若您沒有複本而節點失敗，則可能會發生資料遺失。 | 每個碎片 0 到 5 個。若您沒有複本而節點失敗，您可能遺失該碎片中的所有資料。 | 
| Multi-AZ  | 是，至少 1 個複本。選用。預設開啟。 | 是選用。預設開啟。 | 
| 快照 (備份) | 是，建立單一 .rdb 檔案。 | 是，為每個碎片建立唯一 .rdb 檔案。 | 
| 還原 | 是，使用來自 Valkey 或 Redis OSS （停用叢集模式） 叢集的單一 .rdb 檔案。 | 是，使用來自 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 叢集的 .rdb 檔案。 | 
| 支援 | 所有 Valkey 和 Redis OSS 版本 | 所有 Valkey 版本，以及 Redis OSS 3.2 和更新版本 | 
| 引擎是否可升級 | 是，但包含限制。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。 | 是，但包含限制。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。 | 
| 加密 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| HIPAA 合格服務 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| PCI DSS 合規 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| 線上重新分片 | N/A | 3.2.10 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和更新版本。 | 

## 我應該選擇哪一個？
<a name="Replication.Redis-RedisCluster.Choose"></a>

在 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 之間進行選擇時，請考慮下列因素：
+ **擴展與分割** - 業務需求變動。您需要為峰值需求佈建，或在需求變更時擴展。Valkey 或 Redis OSS （停用叢集模式） 支援擴展。您可以透過新增或刪除複本節點來擴展讀取容量，或是透過向上擴展至更大的節點類型來擴展容量。這些操作都需要時間。如需詳細資訊，請參閱 [擴展 Valkey 或 Redis OSS 的複本節點 （停用叢集模式）](Scaling.RedisReplGrps.md)。

   

  Valkey 或 Redis OSS （啟用叢集模式） 支援將您的資料分割到最多 500 個節點群組。您可以在商業需求變更時動態調整碎片的數量。分割的其中一項優勢，便是您會將負載擴張到更大量的端點，減少尖峰需求期間的存取瓶頸。此外，因為資料可擴張到多個伺服器，您可以容納更大的資料集。如需擴展分割區的資訊，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。

   
+ **節點大小與節點數量** – 由於 Valkey 或 Redis OSS （停用叢集模式） 叢集只有一個碎片，因此節點類型必須足夠大，以容納叢集的所有資料加上必要的額外負荷。另一方面，由於在使用 Valkey 或 Redis OSS （啟用叢集模式） 叢集時，您可以將資料分割成數個碎片，因此節點類型可以更小，不過您需要更多的類型。如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

   
+ **讀取與寫入** – 如果叢集上的主要負載是讀取資料的應用程式，您可以透過新增和刪除僅供讀取複本來擴展 Valkey 或 Redis OSS （停用叢集模式） 叢集。不過，僅供讀取複本的數量上限為 5 個。如果叢集上的負載具有大量寫入，您可以受益於具有多個碎片的 Valkey 或 Redis OSS （啟用叢集模式） 叢集的其他寫入端點。

無論您選擇實作的叢集類型為何，請務必選擇適合您目前及未來需求的節點類型。

# 搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低
<a name="AutoFailover"></a>

有些執行個體 ElastiCache for Valkey 和 Redis OSS 可能需要取代主節點；這些執行個體包括特定類型的計劃維護，以及不太可能發生的主節點或可用區域故障事件。

此取代會導致叢集出現一些停機情況，但如果啟用異地同步備份，停機時間可降至最低。主節點的角色會自動容錯移轉到其中一個僅供讀取複本。不需要建立和佈建新的主節點，因為 ElastiCache 會透明地處理這個問題。此容錯移轉及複本提升可確保您能在提升完成時立即繼續寫入新的主要節點。

ElastiCache 也會傳播所提升複本的網域名稱服務 (DNS)。它會執行這項操作的原因在於，若您的應用程式正在寫入主要端點，您的應用程式中便不需要變更任何端點。如果您是從個別端點讀取，則請確保將提升至主要端點的複本讀取端點變更為新複本的端點。

如果是計劃的節點替換，這些替換因維護更新或自助式更新而啟動，請留意以下事項：
+ 對於 Valkey 和 Redis OSS 叢集，計劃的節點取代會在叢集提供傳入寫入請求時完成。
+ 對於在 5.0.6 或更新版本引擎上執行且已啟用異地同步備份的停用 Valkey 和 Redis OSS 叢集模式叢集，計劃的節點替換會在叢集提供傳入寫入請求時完成。
+ 對於已啟用異地同步備份且在 4.0.10 或更早的引擎上執行的停用 Valkey 和 Redis OSS 叢集模式叢集，您可能會注意到與 DNS 更新相關的短暫寫入中斷。此中斷最多可能需要幾秒鐘的時間。此程序的速度比重新建立及佈建新的主節點更快 (也就是沒有啟用異地同步備份時發生的程序)。

您可以使用 ElastiCache 管理主控台、 AWS CLI或 ElastiCache API 啟用異地同步備份。

在 Valkey 或 Redis OSS 叢集 （在 API 和 CLI 中，複寫群組） 上啟用 ElastiCache 異地同步備份可改善容錯能力。當您的叢集的讀取/寫入主要叢集因任何原因變得無法連線或失敗的情況下，這特別有用。僅在每個碎片中具有多個節點的 Valkey 和 Redis OSS 叢集上支援異地同步備份。

**Topics**
+ [啟用多個可用區](#AutoFailover.Enable)
+ [具有異地同步備份回應的故障案例](#AutoFailover.Scenarios)
+ [測試自動容錯移轉](#auto-failover-test)
+ [多可用區的限制](#AutoFailover.Limitations)

## 啟用多個可用區
<a name="AutoFailover.Enable"></a>

您可以在使用 ElastiCache 主控台或 ElastiCache API 建立或修改叢集 (API 或 CLI AWS CLI、複寫群組） 時啟用異地同步備份。

您只能在至少有一個可用僅供讀取複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集上啟用異地同步備份。沒有僅供讀取複本的叢集無法提供高度可用性或容錯能力。如需建立附帶複寫叢集的資訊，請參閱[建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingRepGroup.md)。如需將僅供讀取複本新增到附帶複寫叢集的資訊，請參閱[新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)。

**Topics**
+ [啟用異地同步備份 (主控台)](#AutoFailover.Enable.Console)
+ [啟用異地同步備份 (AWS CLI)](#AutoFailover.Enable.CLI)
+ [啟用異地同步備份 (ElastiCache API)](#AutoFailover.Enable.API)

### 啟用異地同步備份 (主控台)
<a name="AutoFailover.Enable.Console"></a>

您可以在建立新的 Valkey 或 Redis OSS 叢集或修改具有複寫的現有叢集時，使用 ElastiCache 主控台啟用異地同步備份。

根據預設，Valkey 或 Redis OSS （啟用叢集模式） 叢集上會啟用異地同步備份。

**重要**  
只有當叢集的所有碎片中至少有一個複本的可用區域與主節點不同時，ElastiCache 才會自動啟用異地同步備份。

#### 使用 ElastiCache 主控台建立叢集時啟用異地同步備份
<a name="AutoFailover.Enable.Console.NewCacheCluster"></a>

如需此程序的詳細資訊，請參閱[建立 Valkey （停用叢集模式） 叢集 （主控台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)。請務必確保您有一或多個複本，並啟用多個可用區。

#### 在現有叢集上啟用異地同步備份 (主控台)
<a name="AutoFailover.Enable.Console.ReplGrp"></a>

如需此程序的詳細資訊，請參閱[使用 ElastiCache AWS 管理主控台](Clusters.Modify.md#Clusters.Modify.CON)修改叢集。

### 啟用異地同步備份 (AWS CLI)
<a name="AutoFailover.Enable.CLI"></a>

下列程式碼範例使用 AWS CLI 為複寫群組 啟用異地同步備份`redis12`。

**重要**  
複寫群組 `redis12` 必須已存在，並且其中必須至少要有一個可用的僅供讀取複本。

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
    --replication-group-id redis12 \
    --automatic-failover-enabled \
    --multi-az-enabled \
    --apply-immediately
```

針對 Windows：

```
aws elasticache modify-replication-group ^
    --replication-group-id redis12 ^
    --automatic-failover-enabled ^
    --multi-az-enabled ^
    --apply-immediately
```

此命令的 JSON 輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "modifying", 
        "Description": "One shard, two nodes", 
        "NodeGroups": [
            {
                "Status": "modifying", 
                "NodeGroupMembers": [
                    {
                        "CurrentRole": "primary", 
                        "PreferredAvailabilityZone": "us-west-2b", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis12-001.v5r9dc.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis12-001"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2a", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis12-002.v5r9dc.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis12-002"
                    }
                ], 
                "NodeGroupId": "0001", 
                "PrimaryEndpoint": {
                    "Port": 6379, 
                    "Address": "redis12.v5r9dc.ng.0001.usw2.cache.amazonaws.com"
                }
            }
        ], 
        "ReplicationGroupId": "redis12", 
        "SnapshotRetentionLimit": 1, 
        "AutomaticFailover": "enabling", 
        "MultiAZ": "enabled", 
        "SnapshotWindow": "07:00-08:00", 
        "SnapshottingClusterId": "redis12-002", 
        "MemberClusters": [
            "redis12-001", 
            "redis12-002"
        ], 
        "PendingModifiedValues": {}
    }
}
```

如需詳細資訊，請參閱 *AWS CLI 命令參考*中的下列主題：
+ [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html)
+ [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)
+ *AWS CLI 命令參考*中的 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)。

### 啟用異地同步備份 (ElastiCache API)
<a name="AutoFailover.Enable.API"></a>

下列程式碼範例使用 ElastiCache API 為複寫群組 `redis12` 啟用異地同步備份。

**注意**  
若要使用此範例，複寫群組 `redis12` 必須已存在，並且其中必須至少要有一個可用的僅供讀取複本。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyReplicationGroup
    &ApplyImmediately=true
    &AutoFailover=true
    &MultiAZEnabled=true
    &ReplicationGroupId=redis12
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20140401T192317Z
    &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 *ElastiCache API 參考*中的下列主題：
+ [CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)
+ [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)

## 具有異地同步備份回應的故障案例
<a name="AutoFailover.Scenarios"></a>

在引入異地同步備份之前，ElastiCache 是透過重新建立及重新佈建故障的節點，來偵測並取代叢集中故障的節點。如果啟用多個可用區，故障的主要節點會容錯移轉至複寫延遲最短的複本。選取的複本會自動提升為主要節點，這比建立並重新佈建新的主要節點更快。此程序通常只需要幾秒鐘，您便能再次寫入叢集。

啟用異地同步備份時，ElastiCache 會持續監控主節點的狀態。若主要節點故障，便會根據故障的類型執行以下其中一個動作。

**Topics**
+ [只有主節點故障的故障案例](#AutoFailover.Scenarios.PrimaryOnly)
+ [主節點和某些僅供讀取複本故障的故障案例](#AutoFailover.Scenarios.PrimaryAndReplicas)
+ [整個叢集故障的故障案例](#AutoFailover.Scenarios.AllFail)

### 只有主節點故障的故障案例
<a name="AutoFailover.Scenarios.PrimaryOnly"></a>

若只有主要節點故障，複寫延遲最短的僅供讀取複本便會提升至主要叢集。接著會在與故障的主要節點相同的可用區域中建立並佈建遭取代的僅供讀取複本。

只有主節點故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點會離線。

1. 複寫延隔最少的僅供讀取複本會提升為主要節點。

   寫入通常可以在提升程序完成時繼續，這通常僅需要數秒鐘。若您的應用程式正在寫入主要端點，便不需要針對寫入或讀取變更端點。ElastiCache 會傳播提升複本的 DNS 名稱。

1. 啟動及佈建替換用的僅供讀取複本。

   替換用的僅供讀取複本會在失敗主要節點所在的可用區域內啟動，維持節點的分佈。

1. 複本會與新的主要節點同步。

新複本可供使用之後，請注意下列效果：
+ **主要端點** - 您不需要對應用程式進行任何變更，因為新主節點的 DNS 名稱會傳播到主要端點。
+ **讀取端點** - 讀取者端點會自動更新，以指向新的複本節點。

如需尋找叢集端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

 

### 主節點和某些僅供讀取複本故障的故障案例
<a name="AutoFailover.Scenarios.PrimaryAndReplicas"></a>

若主要節點及至少一個僅供讀取複本失敗時，複寫延隔最少的可用複本會提升至主要叢集。新的僅供讀取複本也會在失敗節點及提升為主要節點複本的相同可用區域內建立及佈建。

主節點和一部分僅供讀取複本故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點和失敗的僅供讀取複本會離線。

1. 複寫延隔最少的可用複本會提升為主要節點。

   寫入通常可以在提升程序完成時繼續，這通常僅需要數秒鐘。若您的應用程式正在寫入主要端點，便不需要針對寫入變更端點。ElastiCache 會傳播提升複本的 DNS 名稱。

1. 建立及佈建替換用的複本。

   替換用的複本會在失敗節點所在的可用區域內建立，維持節點的分佈。

1. 所有叢集都會和新的主要節點同步。

在新節點可用之後，請對應用程式進行以下變更：
+ **主要端點** - 不要對應用程式做任何變更。新主要節點的 DNS 名稱會傳播到主要端點。
+ **讀取端點** - 讀取端點會自動更新，以指向新的複本節點。

如需尋找複寫群組端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

 

### 整個叢集故障的故障案例
<a name="AutoFailover.Scenarios.AllFail"></a>

若所有項目都失敗，便會在原始節點的相同可用區域內重新建立及佈建所有節點。

在此案例中，叢集內的所有資料都會因為叢集內的每個節點都發生故障而遺失。這種情況相當罕見。

整個叢集故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點和僅供讀取複本會離線。

1. 建立及佈建替換用的主要節點。

1. 建立及佈建替換用的複本。

   替代項目會在失敗節點所在的可用區域內建立，維持節點的分佈。

   因為整個叢集失敗，資料會遺失，並且所有新的節點都會從零開始。

因為每個替換用節點都會具備與欲取代節點相同的端點，因此您不需要在應用程式內對任何端點進行變更。

如需尋找複寫群組端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

我們建議您在不同可用區域內建立主要節點和僅供讀取複本，以提升您的容錯能力層級。

## 測試自動容錯移轉
<a name="auto-failover-test"></a>

啟用自動容錯移轉之後，您可以使用 ElastiCache 主控台、 AWS CLI和 ElastiCache API 來進行測試。

在測試時，請注意下列事項：
+ 您可以使用此操作，在任何滾動 24 小時期間內測試最多 15 個碎片 （在 ElastiCache API 和 中稱為節點群組 AWS CLI) 的自動容錯移轉。
+ 若您在不同叢集 (在 API 和 CLI 中稱為複寫群組) 內的碎片上呼叫此操作，您可以同時進行呼叫。
+ 在某些情況下，您可以在相同 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的不同碎片上多次呼叫此操作。在這種情況下，必須先完成第一個節點取代，才能夠執行後續呼叫。
+ 若要判斷節點替換是否已完成，請使用 Amazon ElastiCache 主控台 AWS CLI、 或 ElastiCache API 檢查事件。尋找與自動容錯移轉相關的以下事件 (根據可能發生的順序列出)：

  1. 複寫群組訊息：`Test Failover API called for node group <node-group-id>`

  1. 快取叢集訊息：`Failover from primary node <primary-node-id> to replica node <node-id> completed`

  1. 複寫群組訊息：`Failover from primary node <primary-node-id> to replica node <node-id> completed`

  1. 快取叢集訊息：`Recovering cache nodes <node-id>`

  1. 快取叢集訊息：`Finished recovery for cache nodes <node-id>`

  如需詳細資訊，請參閱下列內容：
  + *ElastiCache 使用者指南*中的「[檢視 ElastiCache 事件](ECEvents.Viewing.md)」
  + *ElastiCache API 參考*中的 [DescribeEvents](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html)
  + *AWS CLI 命令參考*中的 [describe-events](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-events.html)。
+ 此 API 旨在測試您的應用程式在 ElastiCache 容錯移轉情況下的行為。並非設計成啟動容錯移轉以解決叢集問題的操作工具。此外，在某些情況下，例如大規模操作事件， AWS 可能會封鎖此 API。

**Topics**
+ [使用 測試自動容錯移轉 AWS 管理主控台](#auto-failover-test-con)
+ [使用 測試自動容錯移轉 AWS CLI](#auto-failover-test-cli)
+ [使用 ElastiCache API 測試自動容錯移轉](#auto-failover-test-api)

### 使用 測試自動容錯移轉 AWS 管理主控台
<a name="auto-failover-test-con"></a>

使用下列程序，透過主控台測試自動容錯移轉。

**測試自動容錯移轉**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**。

1. 從叢集清單中，選擇您要測試之叢集左側的方塊。​此叢集至少需要有一個僅供讀取複本節點。

1. 在 **Details (詳細資訊)** 區域中，確認此叢集已啟用異地同步備份。若叢集尚未啟用多個可用區，請選擇不同叢集，或是修改此叢集以啟用多個可用區。如需詳細資訊，請參閱[使用 ElastiCache AWS 管理主控台](Clusters.Modify.md#Clusters.Modify.CON)。  
![\[影像：啟用多可用區域叢集的詳細資訊區域\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-AutoFailover-MultiAZ-Enabled.png)

1. 針對 Valkey 或 Redis OSS （停用叢集模式），選擇叢集的名稱。

   針對 Valkey 或 Redis OSS （啟用叢集模式），請執行下列動作：

   1. 選擇叢集名稱。

   1. 在 **Shards (碎片)** 頁面上，針對您希望測試容錯移轉的碎片 (API 和 CLI 中稱為節點群組)，選擇碎片名稱。

1. 在 Nodes (節點) 頁面上，選擇 **Failover Primary (容錯移轉主要節點)**。

1. 選擇 **Continue (繼續)** 來容錯移轉主要節點，或是 **Cancel (取消)** 來取消操作而不容錯移轉主要節點。

   在容錯移轉程序期間，主控台會繼續將節點的狀態顯示為「可用」**。若要追蹤容錯移轉測試的進度，請從主控台導覽窗格選擇 **Events (事件)**。在 **Events (事件)** 標籤上，觀察指出您容錯移轉已啟動的事件 (`Test Failover API called`) 並完成 (`Recovery completed`)。

 

### 使用 測試自動容錯移轉 AWS CLI
<a name="auto-failover-test-cli"></a>

您可以使用 AWS CLI 操作，在任何已啟用異地同步備份的叢集上測試自動容錯移轉`test-failover`。

**參數**
+ `--replication-group-id` - 必要。要測試的複寫群組 (在主控台上為叢集)。
+ `--node-group-id` - 必要項目。您欲測試自動容錯移轉的節點群組名稱。在連續 24 小時期間內，您最多可以測試 15 個節點群組。

下列範例使用 AWS CLI 在 Valkey 或 Redis OSS （啟用叢集模式） 叢集 `redis00-0003` 中的節點群組上測試自動容錯移轉`redis00`。

**Example 測試自動容錯移轉**  
若為 Linux、macOS 或 Unix：  

```
aws elasticache test-failover \
   --replication-group-id redis00 \
   --node-group-id redis00-0003
```
針對 Windows：  

```
aws elasticache test-failover ^
   --replication-group-id redis00 ^
   --node-group-id redis00-0003
```

上述命令的輸出會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "available", 
        "Description": "1 shard, 3 nodes (1 + 2 replicas)", 
        "NodeGroups": [
            {
                "Status": "available", 
                "NodeGroupMembers": [
                    {
                        "CurrentRole": "primary", 
                        "PreferredAvailabilityZone": "us-west-2c", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-001.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-001"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2a", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-002.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-002"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2b", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-003.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-003"
                    }
                ], 
                "NodeGroupId": "0001", 
                "PrimaryEndpoint": {
                    "Port": 6379, 
                    "Address": "redis1x3.7ekv3t.ng.0001.usw2.cache.amazonaws.com"
                }
            }
        ], 
        "ClusterEnabled": false, 
        "ReplicationGroupId": "redis1x3", 
        "SnapshotRetentionLimit": 1, 
        "AutomaticFailover": "enabled", 
        "MultiAZ": "enabled",
        "SnapshotWindow": "11:30-12:30", 
        "SnapshottingClusterId": "redis1x3-002", 
        "MemberClusters": [
            "redis1x3-001", 
            "redis1x3-002", 
            "redis1x3-003"
        ], 
        "CacheNodeType": "cache.m3.medium", 
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

若要追蹤容錯移轉的進度，請使用 AWS CLI `describe-events`操作。

如需詳細資訊，請參閱下列內容：
+ *AWS CLI 命令參考*中的 [test-failover](https://docs.aws.amazon.com/cli/latest/reference/elasticache/test-failover.html)。
+ *AWS CLI 命令參考*中的 [describe-events](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-events.html)。

 

### 使用 ElastiCache API 測試自動容錯移轉
<a name="auto-failover-test-api"></a>

您可以在任何啟用異地同步備份的叢集上，使用 ElastiCache API 作業 `TestFailover` 來測試自動容錯移轉。

**參數**
+ `ReplicationGroupId` - 必要項目。要測試的複寫群組 (在主控台上為叢集)。
+ `NodeGroupId` - 必要項目。您欲測試自動容錯移轉的節點群組名稱。在連續 24 小時期間內，您最多可以測試 15 個節點群組。

以下範例會在複寫群組 (主控台上為叢集) `redis00` 中的節點群組 `redis00-0003` 上測試自動容錯移轉。

**Example 測試自動容錯移轉**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=TestFailover
    &NodeGroupId=redis00-0003
    &ReplicationGroupId=redis00
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20140401T192317Z
    &X-Amz-Credential=<credential>
```

若要追蹤您容錯移轉的進度，請使用 ElastiCache `DescribeEvents` API 作業。

如需詳細資訊，請參閱下列內容：
+ *ElastiCache API 參考*中的 [TestFailover](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_TestFailover.html) 
+ [ElastiCache API 參考](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html)中的 *DescribeEvents* 

 

## 多可用區的限制
<a name="AutoFailover.Limitations"></a>

請注意異地同步備份的下列限制：
+ Valkey 和 Redis OSS 2.8.6 版及更新版本支援異地同步備份。
+ T1 節點類型不支援異地同步備份。
+ Valkey 和 Redis OSS 複寫是非同步的。因此，當主要節點容錯移轉至複本時，可能會因複寫延遲而導致一小部分的資料遺失。

  選擇要提升為主要複本的複本時，ElastiCache 會選擇具有最小複寫延遲的複本。換句話說，它會選擇最新的複本。這麼做有助於減少遺失的資料量。具有最少複寫延遲的複本可以和失敗的主要節點位於相同可用區域或不同可用區域中。
+ 當您在停用叢集模式的 Valkey 或 Redis OSS 叢集上手動將僅供讀取複本提升為主要叢集時，您只能在停用異地同步備份和自動容錯移轉時執行此操作。若要將僅供讀取複本節點提升為主要節點，請採取下列步驟：

  1. 停用叢集上的多個可用區。

  1. 停用叢集上的自動容錯移轉。您可以透過主控台清除複寫群組的**自動容錯移轉**核取方塊來執行此操作。您也可以在呼叫 `ModifyReplicationGroup`操作`false`時，將 `AutomaticFailoverEnabled` 屬性設定為 ， AWS CLI 以使用 執行此操作。

  1. 將僅供讀取複本提升為主要節點。

  1. 重新啟用多個可用區。
+ ElastiCache for Redis OSS 多可用區和僅附加檔案 (AOF) 是互斥的。若您啟用其中一項，便無法啟用另外一項。
+ 節點故障很少會是因為整個可用區域失敗所造成。在此情況下，只有在可用區域已備份時，才會建立取代失敗主要節點的複本。例如，假設有一個複寫群組，其中主要節點位於 AZ-a，複本位於 AZ-b 及 AZ-c。若主要節點失敗，複寫延隔最少的複本便會提升至主要叢集。然後 ElastiCache 只會在 AZ-a 復原且重新可用時，才會在 AZ-a (即失敗主節點的所在位置) 中建立新的複本。
+ 由客戶初始化的主要節點重新開機不會觸發自動容錯移轉。其他重新開機和故障會觸發自動容錯移轉。
+ 主要節點重新開機時，便會在回到線上時清除資料。當僅供讀取複本看到已清除的主要叢集時，它們便會清除資料複本，造成資料遺失。
+ 在提升僅供讀取複本之後，其他複本便會和新的主要節點同步。初始化同步後，複本的內容會被刪除，而且它們會從新的主要節點同步資料。此同步程序會造成短暫的中斷，在此期間無法存取複本。此同步程序也會在與複本進行同步時，於主要節點上造成暫時性的負載增加。此行為是 Valkey 和 Redis OSS 的原生行為，對 ElastiCache Multi-AZ 而言並非唯一行為。如需此行為的詳細資訊，請參閱 Valkey 網站上的[複寫](http://valkey.io/topics/replication)。

**重要**  
對於 Valkey 7.2.6 和更新版本或 Redis OSS 2.8.22 和更新版本，您無法建立外部複本。  
對於 2.8.22 之前的 Redis OSS 版本，建議您不要將外部複本連接到已啟用異地同步備份的 ElastiCache 叢集。這是不受支援的組態，可能會造成問題，導致 ElastiCache 無法正常執行容錯移轉與復原。若要將外部複本連線至 ElastiCache 叢集，請確定在進行連線之前未啟用異地同步備份。

# 同步與備份的實作方式
<a name="Replication.Redis.Versions"></a>

所有支援的 Valkey 和 Redis OSS 版本都支援主要節點和複本節點之間的備份和同步。不過，備份和同步的實作方式會因版本而異。

## Redis OSS 2.8.22 版及更新版本
<a name="Replication.Redis.Version2-8-22"></a>

Redis OSS 複寫，在 2.8.22 版和更新版本中，選擇兩種方法。如需詳細資訊，請參閱[2.8.22 之前的 Redis OSS 版本](#Replication.Redis.Earlier2-8-22)及[快照和還原](backups.md)。

在無分支過程期間，若寫入負載龐大，對叢集進行的寫入會發生延遲，確保您不會累積過多變更並因此防止快照。

## 2.8.22 之前的 Redis OSS 版本
<a name="Replication.Redis.Earlier2-8-22"></a>

2.8.22 之前的 Redis OSS 備份和同步是三個步驟的程序。

1. 分支，並在背景程序中，將叢集資料序列化到磁碟。這會建立 point-in-time 快照。

1. 在前景中，將變更日誌累積在*用戶端輸出緩衝區*中。
**重要**  
若變更日誌超過*用戶端輸出緩衝區*大小，則備份或同步便會失敗。如需詳細資訊，請參閱[確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)。

1. 最後，將傳輸快取資料，以及變更日誌傳送到複本節點。

# 建立 Valkey 或 Redis OSS 複寫群組
<a name="Replication.CreatingRepGroup"></a>

您有以下選項，可用來建立包含複本節點的叢集。當您已有可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集，而該叢集具有要用作主節點的複本，則有一個叢集適用。如果您需要在叢集中建立主要節點及僅供讀取複本，則適用另一個選項。目前，必須從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集。

**選項 1：[使用現有叢集建立複寫群組](Replication.CreatingReplGroup.ExistingCluster.md)**  
使用此選項可運用現有的單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集。您需將此現有節點指定為新叢集中的主節點，然後將 1 到 5 個僅供讀取複本分別新增到叢集。若現有叢集正在作用中，僅供讀取複本便會在建立時與其同步。請參閱 [使用現有叢集建立複寫群組](Replication.CreatingReplGroup.ExistingCluster.md)。  
您無法使用現有叢集建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集。若要使用 ElastiCache 主控台建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組），請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。

**選項 2：[從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)**  
如果您還沒有可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集做為叢集的主要節點，或您想要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請使用此選項。請參閱[從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)。

# 使用現有叢集建立複寫群組
<a name="Replication.CreatingReplGroup.ExistingCluster"></a>

下列程序會將複寫群組新增至您的 Valkey 或 Redis OSS （停用叢集模式） 單一節點叢集，這是將叢集升級至最新版本的 Valkey 所必需的。這是一個就地程序，涉及零停機時間和零資料遺失。當您為單一節點叢集建立複寫群組時，叢集的節點會成為新叢集中的主要節點。如果您沒有可以用作新叢集主要叢集的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請參閱 [從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)。

可用的叢集是現有的單一節點 Valkey 或 Redis OSS 叢集。目前，Valkey 或 Redis OSS （啟用叢集模式） 不支援使用可用的單一節點叢集建立具有複本的叢集。如果您想要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON)。

## 使用現有叢集建立複寫群組 （主控台）
<a name="Replication.CreatingReplGroup.ExistingCluster.CON"></a>

請參閱主題：[使用 ElastiCache AWS 管理主控台](Clusters.AddNode.md#Clusters.AddNode.CON)。

## 使用可用的 Valkey 或 Redis OSS 叢集建立複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.ExistingCluster.CLI"></a>

在為主要 使用可用的 Valkey 或 Redis OSS 快取叢集時，建立具有僅供讀取複本的複寫群組有兩個步驟AWS CLI。

使用 時，AWS CLI您會建立複寫群組，指定可用的獨立節點做為叢集的主要節點，`--primary-cluster-id`以及使用 CLI 命令在叢集中所需的節點數目`create-replication-group`。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。此參數的值會用來做為新增節點名稱的基礎，並在 `--replication-group-id` 的結尾加上 3 位數的序號。例如 `sample-repl-group-001`。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--num-node-groups**  
此叢集中的您希望的節點數量。此值包含主要節點。此參數的最大值為 6。

**--primary-cluster-id**  
您要成為此複寫群組中主要節點的可用 Valkey 或 Redis OSS （停用叢集模式） 叢集節點的名稱。

下列命令`sample-repl-group`會使用可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集建立複寫群組，`redis01`做為複寫群組的主要節點。它會建立 2 個新節點 (皆為僅供讀取複本)。`redis01` 的設定 (即參數群組、安全群組、節點類型、引擎版本等) 會套用到所有複寫群組中的節點。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "demo cluster with replicas" \
   --num-cache-clusters 3 \
   --primary-cluster-id redis01
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --primary-cluster-id redis01
```

如需您可能想要使用的其他資訊和參數，請參閱AWS CLI主題 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

**接下來，將僅供讀取複本新增到複寫群組**  
在建立複寫群組之後，使用 `create-cache-cluster` 命令將一到五個僅供讀取複本新增到其中，並確認包含以下參數。

**--cache-cluster-id**  
您欲新增到複寫群組的叢集名稱。  
叢集命名限制條件如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。


**--replication-group-id**  
您要新增此叢集的複寫群組名稱。

針對每個您欲新增到複寫群組的僅供讀取複本重複此命令，並只變更 `--cache-cluster-id` 參數的值。

**注意**  
請記住，複寫群組無法擁有超過五個僅供讀取複本。嘗試將僅供讀取複本新增到已有五個僅供讀取複本的複寫群組，會造成操作失敗。

以下程式碼會將僅供讀取複本 `my-replica01` 新增到複寫群組 `sample-repl-group`。主要叢集的設定 (參數群組、安全群組、節點類型等) 會在新增到複寫群組時套用到節點。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
   --cache-cluster-id my-replica01 \
   --replication-group-id sample-repl-group
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
   --cache-cluster-id my-replica01 ^
   --replication-group-id sample-repl-group
```

此命令的輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "creating",
        "Description": "demo cluster with replicas",
        "ClusterEnabled": false,
        "ReplicationGroupId": "sample-repl-group",
        "SnapshotRetentionLimit": 1,
        "AutomaticFailover": "disabled",
        "SnapshotWindow": "00:00-01:00",
        "SnapshottingClusterId": "redis01",
        "MemberClusters": [
            "sample-repl-group-001",
            "sample-repl-group-002",
            "redis01"
        ],
        "CacheNodeType": "cache.m4.large",
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

如需詳細資訊，請參閱AWS CLI主題：
+ [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)
+ [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)

## 將複本新增至獨立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)
<a name="Replication.CreatingReplGroup.ExistingCluster.API"></a>

使用 ElastiCache API 時，您會建立複寫群組，將可用的獨立節點指定為叢集的主節點 (`PrimaryClusterId`)，以及使用 CLI 命令 `CreateReplicationGroup` 指定您希望叢集中具有的節點數量。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。此參數的值會用來做為新增節點名稱的基礎，並在 `ReplicationGroupId` 的結尾加上 3 位數的序號。例如 `sample-repl-group-001`。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
包含複本的叢集說明。

**NumCacheClusters**  
此叢集中的您希望的節點數量。此值包含主要節點。此參數的最大值為 6。

**PrimaryClusterId**  
您要成為此叢集中主節點的可用 Valkey 或 Redis OSS （停用叢集模式） 叢集名稱。

下列命令`sample-repl-group`會使用可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集`redis01`做為複寫群組的主要節點，建立具有複本的叢集。它會建立 2 個新節點 (皆為僅供讀取複本)。`redis01` 的設定 (即參數群組、安全群組、節點類型、引擎版本等) 會套用到所有複寫群組中的節點。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &Engine=redis
   &EngineVersion=6.0
   &ReplicationGroupDescription=Demo%20cluster%20with%20replicas
   &ReplicationGroupId=sample-repl-group
   &PrimaryClusterId=redis01
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊，請參閱 ElastiCache APL 主題：
+ [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)

**接下來，將僅供讀取複本新增到複寫群組**  
在建立複寫群組之後，使用 `CreateCacheCluster` 操作將一到五個僅供讀取複本新增到其中，並確認包含以下參數。

**CacheClusterId**  
您欲新增到複寫群組的叢集名稱。  
叢集命名限制條件如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。


**ReplicationGroupId**  
您要新增此叢集的複寫群組名稱。

針對每個您欲新增到複寫群組的僅供讀取複本重複此操作，並只變更 `CacheClusterId` 參數的值。

以下程式碼會將僅供讀取複本 (`myReplica01`) 新增到複寫群組 (`myReplGroup`)。主要叢集的設定 (參數群組、安全群組、節點類型等) 會在新增到複寫群組時套用到節點。

```
https://elasticache.us-west-2.amazonaws.com/
	?Action=CreateCacheCluster
	&CacheClusterId=myReplica01
	&ReplicationGroupId=myReplGroup
	&SignatureMethod=HmacSHA256
	&SignatureVersion=4
	&Version=2015-02-02
	&X-Amz-Algorithm=&AWS;4-HMAC-SHA256
	&X-Amz-Credential=[your-access-key-id]/20150202/us-west-2/elasticache/aws4_request
	&X-Amz-Date=20150202T170651Z
	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
	&X-Amz-Signature=[signature-value]
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)。

# 從頭開始建立 Valkey 或 Redis OSS 複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster"></a>

您可以在下面找到如何建立 Valkey 或 Redis OSS 複寫群組，而不使用現有的 Valkey 或 Redis OSS 叢集做為主要叢集。您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API，從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

在繼續之前，請先決定是否要建立 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需有關決定的指導，請參閱[複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用](Replication.Redis-RedisCluster.md)。

**Topics**
+ [從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Classic.md)
+ [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md)

# 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic"></a>

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API，從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。Valkey 或 Redis OSS （停用叢集模式） 複寫群組一律有一個節點群組、一個主要叢集，以及最多五個僅供讀取複本。Valkey 或 Redis OSS （停用叢集模式） 複寫群組不支援分割您的資料。

**注意**  
節點/碎片的限制可增加至每一叢集 500 個。若要請求增加配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並在請求中加入執行個體類型。

若要從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，請採取下列其中一種方法：

## 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic.CLI"></a>

下列程序會使用 建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 AWS CLI。

當您從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組時，您可以透過對 AWS CLI `create-replication-group` 命令的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--num-cache-clusters**  
您希望與此複寫群組一同建立的節點數量，其為主要節點及僅供讀取複本數的總和。  
若您啟用異地同步備份 (`--automatic-failover-enabled`)，`--num-cache-clusters` 的值必須至少為 2。

**--cache-node-type**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**--cache-parameter-group**  
指定對應到您引擎版本的參數群組。如果您執行 Redis OSS 3.2.4 或更新版本，請指定 `default.redis3.2` 參數群組或衍生自 的參數群組`default.redis3.2`，以建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。如需詳細資訊，請參閱[Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

**--網路類型**  
`ipv4`、`ipv6` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**--engine**  
redis

**--engine-version**  
若要擁有最豐富的功能組，請選擇最新的引擎版本。

節點的名稱會透過在複寫群組名稱後方加上 `-00`*\$1* 來衍生取得。例如，若使用複寫群組名稱 `myReplGroup`，則主要節點的名稱就會是 `myReplGroup-001`，僅供讀取複本的名稱則為 `myReplGroup-002` 到 `myReplGroup-006`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `--transit-encryption-enabled` 或 `--at-rest-encryption-enabled` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `--cache-subnet-group` 參數。
+ 您也必須包含 `--auth-token` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`sample-repl-group`具有三個節點的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組：一個主要節點和兩個複本。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "Demo cluster with replicas" \
   --num-cache-clusters 3 \
   --cache-node-type cache.m4.large \ 
   --engine redis
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "Demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --cache-node-type cache.m4.large ^  
   --engine redis
```

此命令的輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "creating",
        "Description": "Demo cluster with replicas",
        "ClusterEnabled": false,
        "ReplicationGroupId": "sample-repl-group",
        "SnapshotRetentionLimit": 0,
        "AutomaticFailover": "disabled",
        "SnapshotWindow": "01:30-02:30",
        "MemberClusters": [
            "sample-repl-group-001",
            "sample-repl-group-002",
            "sample-repl-group-003"
        ],
        "CacheNodeType": "cache.m4.large",
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

如需您可能想要使用的其他資訊和參數，請參閱 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) AWS CLI 主題。

## 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (ElastiCache API)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic.API"></a>

下列程序會使用 ElastiCache API 建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

當您從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組時，您可以透過對 ElastiCache API `CreateReplicationGroup`操作的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
您複寫群組的說明。

**NumCacheClusters**  
您希望與此複寫群組一同建立的節點總數，其為主要節點及僅供讀取複本數的總和。  
若您啟用異地同步備份 (`AutomaticFailoverEnabled=true`)，`NumCacheClusters` 的值必須至少為 2。

**CacheNodeType**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**CacheParameterGroup**  
指定對應到您引擎版本的參數群組。如果您執行 Redis OSS 3.2.4 或更新版本，請指定 `default.redis3.2` 參數群組或衍生自 的參數群組`default.redis3.2`，以建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。如需詳細資訊，請參閱[Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**引擎**  
redis

**EngineVersion**  
6.0

節點的名稱會透過在複寫群組名稱後方加上 `-00`*\$1* 來衍生取得。例如，若使用複寫群組名稱 `myReplGroup`，則主要節點的名稱就會是 `myReplGroup-001`，僅供讀取複本的名稱則為 `myReplGroup-002` 到 `myReplGroup-006`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `TransitEncryptionEnabled=true` 或 `AtRestEncryptionEnabled=true` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `CacheSubnetGroup` 參數。
+ 您也必須包含 `AuthToken` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`myReplGroup`具有三個節點的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組：主要節點和兩個複本。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &CacheNodeType=cache.m4.large
   &CacheParameterGroup=default.redis6.x
   &Engine=redis
   &EngineVersion=6.0
   &NumCacheClusters=3
   &ReplicationGroupDescription=test%20group
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)。

# 從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster"></a>

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：*複寫群組*)。Valkey 或 Redis OSS （啟用叢集模式） 複寫群組具有 1 到 500 個碎片 (API/CLI：節點群組）、每個碎片中的主要節點，以及每個碎片中最多 5 個僅供讀取複本。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果 Valkey 或 Redis OSS 引擎版本為 5.0.6 或更高版本，節點或碎片限制可以提高到每個叢集最多 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

**Topics**
+ [使用 ElastiCache 主控台](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON)
+ [從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 (AWS CLI)](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI)
+ [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組 (ElastiCache API)](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.API)

## 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON"></a>

若要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。請務必啟用叢集模式 (**Cluster Mode enabled (Scale Out) (啟用叢集模式 (向外擴展))**)，並在其中指定至少兩個碎片及一個複本節點。

## 從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI"></a>

下列程序會使用 建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 AWS CLI。

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以透過對 AWS CLI `create-replication-group` 命令的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--cache-node-type**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**--cache-parameter-group**  
指定 `default.redis6.x.cluster.on` 參數群組或衍生自 的參數群組`default.redis6.x.cluster.on`，以建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需詳細資訊，請參閱[Redis OSS 6.x 參數變更](ParameterGroups.Engine.md#ParameterGroups.Redis.6-x)。

**--engine**  
redis

**--engine-version**  
3.2.4

**--num-node-groups**  
此複寫群組中節點群組的數量。有效值為 1 到 500。  
節點/碎片的限制可增加至每一叢集 500 個。若要請求增加限制，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選取限制類型「每一執行個體類型每一叢集的節點數」。

**--replicas-per-node-group**  
每個節點群組中複本節點的數量。有效值為 0 到 5。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `--transit-encryption-enabled` 或 `--at-rest-encryption-enabled` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `--cache-subnet-group` 參數。
+ 您也必須包含 `--auth-token` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`sample-repl-group`具有三個節點群組/碎片 (--num-node-groups) 的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組，每個群組都有三個節點，一個主要節點和兩個僅供讀取複本 (--replicas-per-node-group)。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "Demo cluster with replicas" \
   --num-node-groups 3 \
   --replicas-per-node-group 2 \
   --cache-node-type cache.m4.large \ 
   --engine redis \   
   --security-group-ids SECURITY_GROUP_ID \    
   --cache-subnet-group-name SUBNET_GROUP_NAME>
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "Demo cluster with replicas" ^
   --num-node-groups 3 ^
   --replicas-per-node-group 2 ^
   --cache-node-type cache.m4.large ^ 
   --engine redis ^   
   --security-group-ids SECURITY_GROUP_ID ^      
   --cache-subnet-group-name SUBNET_GROUP_NAME>
```

上述命令會產生以下輸出。

```
{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Demo cluster with replicas", 
        "ReplicationGroupId": "sample-repl-group", 
        "SnapshotRetentionLimit": 0, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "05:30-06:30", 
        "MemberClusters": [
            "sample-repl-group-0001-001", 
            "sample-repl-group-0001-002", 
            "sample-repl-group-0001-003", 
            "sample-repl-group-0002-001", 
            "sample-repl-group-0002-002", 
            "sample-repl-group-0002-003", 
            "sample-repl-group-0003-001", 
            "sample-repl-group-0003-002", 
            "sample-repl-group-0003-003"
        ], 
        "PendingModifiedValues": {}
    }
}
```

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以使用 `--node-group-configuration` 參數來設定叢集中的每個碎片，如下列設定兩個節點群組 （主控台：碎片） 的範例所示。第一個碎片有兩個節點：一個主要節點及一個僅供讀取複本。第二個碎片有三個節點：一個主要節點及兩個僅供讀取複本。

**--node-group-configuration**  
每個節點群組的組態。`--node-group-configuration` 參數由以下欄位組成。  
+ `PrimaryAvailabilityZone` - 此節點群組主節點所在的可用區域。如果省略此參數，ElastiCache 會為主節點選擇可用區域。

  **範例：**us-west-2a。
+ `ReplicaAvailabilityZones` - 僅供讀取複本所在可用區域的逗點分隔清單。此清單中的可用區域數量必須等於 `ReplicaCount` 的值。如果省略此參數，ElastiCache 會為複本節點選擇可用區域。

  **範例：**"us-west-2a,us-west-2b,us-west-2c"
+ `ReplicaCount` - 此節點群組中複本節點的數量。
+ `Slots` - 指定節點群組 Keyspace 的字串。此字串格式為 `startKey-endKey`。如果省略此參數，ElastiCache 會在節點群組間配置相同的索引鍵。

  **範例：**"0-4999"

   

下列操作會建立`new-group`具有兩個節點群組/碎片 () 的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組`--num-node-groups`。與上述範例不同，每個節點群組的設定都會與其他節點群組不同 (`--node-group-configuration`)。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id new-group \
  --replication-group-description "Sharded replication group" \
  --engine redis \    
  --snapshot-retention-limit 8 \
  --cache-node-type cache.m4.medium \
  --num-node-groups 2 \
  --node-group-configuration \
      "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \
      "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"
```

針對 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id new-group ^
  --replication-group-description "Sharded replication group" ^
  --engine redis ^    
  --snapshot-retention-limit 8 ^
  --cache-node-type cache.m4.medium ^
  --num-node-groups 2 ^
  --node-group-configuration \
      "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \
      "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"
```

上述操作會產生以下輸出。

```
{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Sharded replication group", 
        "ReplicationGroupId": "rc-rg", 
        "SnapshotRetentionLimit": 8, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "10:00-11:00", 
        "MemberClusters": [
            "rc-rg-0001-001", 
            "rc-rg-0001-002", 
            "rc-rg-0002-001", 
            "rc-rg-0002-002", 
            "rc-rg-0002-003"
        ], 
        "PendingModifiedValues": {}
    }
}
```

如需您可能想要使用的其他資訊和參數，請參閱 AWS CLI 主題 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

## 從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組 (ElastiCache API)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.API"></a>

下列程序會使用 ElastiCache API 建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以透過對 ElastiCache API `CreateReplicationGroup`操作的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
複寫群組的說明。

**NumNodeGroups**  
您希望和此複寫群組一同建立的節點群組數量。有效值為 1 到 500。

**ReplicasPerNodeGroup**  
每個節點群組中複本節點的數量。有效值為 1 到 5。

**NodeGroupConfiguration**  
每個節點群組的組態。`NodeGroupConfiguration` 參數由以下欄位組成。  
+ `PrimaryAvailabilityZone` - 此節點群組主節點所在的可用區域。如果省略此參數，ElastiCache 會為主節點選擇可用區域。

  **範例：**us-west-2a。
+ `ReplicaAvailabilityZones` - 僅供讀取複本所在可用區域的清單。此清單中的可用區域數量必須等於 `ReplicaCount` 的值。如果省略此參數，ElastiCache 會為複本節點選擇可用區域。
+ `ReplicaCount` - 此節點群組中複本節點的數量。
+ `Slots` - 指定節點群組 Keyspace 的字串。此字串格式為 `startKey-endKey`。如果省略此參數，ElastiCache 會在節點群組間配置相同的索引鍵。

  **範例：**"0-4999"

   

**CacheNodeType**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**CacheParameterGroup**  
指定 `default.redis6.x.cluster.on` 參數群組或衍生自 的參數群組`default.redis6.x.cluster.on`，以建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需詳細資訊，請參閱[Redis OSS 6.x 參數變更](ParameterGroups.Engine.md#ParameterGroups.Redis.6-x)。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**引擎**  
redis

**EngineVersion**  
6.0

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `TransitEncryptionEnabled=true` 或 `AtRestEncryptionEnabled=true` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `CacheSubnetGroup` 參數。
+ 您也必須包含 `AuthToken` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

加上分行符號的用意是便於閱讀。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &CacheNodeType=cache.m4.large
   &CacheParemeterGroup=default.redis6.xcluster.on
   &Engine=redis
   &EngineVersion=6.0
   &NumNodeGroups=3
   &ReplicasPerNodeGroup=2
   &ReplicationGroupDescription=test%20group
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)。

# 檢視複寫群組詳細資訊
<a name="Replication.ViewDetails"></a>

有時候，您可能會想要檢視複寫群組的詳細資訊。您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API。Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 的主控台程序不同。

**Contents**
+ [使用複本檢視 Valkey 或 Redis OSS （停用叢集模式）](Replication.ViewDetails.Redis.md)
  + [使用 ElastiCache 主控台](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.CON)
  + [使用 AWS CLI](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.CLI)
  + [使用 ElastiCache API](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.API)
+ [檢視複寫群組：Valkey 或 Redis OSS （啟用叢集模式）](Replication.ViewDetails.RedisCluster.md)
  + [使用 ElastiCache 主控台](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.CON)
  + [使用 AWS CLI](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.CLI)
  + [使用 ElastiCache API](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.API)
+ [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)
+ [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)

# 使用複本檢視 Valkey 或 Redis OSS （停用叢集模式）
<a name="Replication.ViewDetails.Redis"></a>

您可以使用 ElastiCache 主控台、 AWS CLI for ElastiCache 或 ElastiCache API，檢視具有複本 (API/CLI： *複寫群組*) 的 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊。

**Contents**
+ [使用 ElastiCache 主控台](#Replication.ViewDetails.Redis.CON)
+ [使用 AWS CLI](#Replication.ViewDetails.Redis.CLI)
+ [使用 ElastiCache API](#Replication.ViewDetails.Redis.API)

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 （主控台）
<a name="Replication.ViewDetails.Redis.CON"></a>

若要使用 ElastiCache 主控台檢視具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊，請參閱主題 [檢視 Valkey 或 Redis OSS （停用叢集模式） 詳細資訊 （主控台）](Clusters.ViewDetails.md#Clusters.ViewDetails.CON.Redis)。

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.ViewDetails.Redis.CLI"></a>

如需顯示 Valkey 或 Redis OSS （停用叢集模式） 複寫群組詳細資訊 AWS CLI 的範例，請參閱 [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)。

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (ElastiCache API)
<a name="Replication.ViewDetails.Redis.API"></a>

如需顯示 Valkey 或 Redis OSS （停用叢集模式） 複寫群組詳細資訊的 ElastiCache API 範例，請參閱 [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)。

# 檢視複寫群組：Valkey 或 Redis OSS （啟用叢集模式）
<a name="Replication.ViewDetails.RedisCluster"></a>

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）
<a name="Replication.ViewDetails.RedisCluster.CON"></a>

若要使用 ElastiCache 主控台檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊，請參閱 [檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台） 的詳細資訊](Clusters.ViewDetails.md#Clusters.ViewDetails.CON.RedisCluster)。

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (AWS CLI)
<a name="Replication.ViewDetails.RedisCluster.CLI"></a>

如需顯示 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組詳細資訊的 ElastiCache CLI 範例，請參閱 [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)。

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (ElastiCache API)
<a name="Replication.ViewDetails.RedisCluster.API"></a>

如需顯示 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組詳細資訊的 ElastiCache API 範例，請參閱 [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)。

# 檢視複寫群組詳細資訊 (AWS CLI)
<a name="Replication.ViewDetails.CLI"></a>

您可以使用 命令檢視複寫群組 AWS CLI `describe-replication-groups`的詳細資訊。使用以下選用參數來縮小清單的搜尋範圍。忽略參數會傳回最多 100 個複寫群組的詳細資訊。

**選用的參數**
+ `--replication-group-id` - 使用此參數來列出特定複寫群組的詳細資訊。若指定複寫群組擁有超過一個節點群組，結果會以節點群組做為群組傳回。
+ `--max-items` - 使用此參數來限制列出的複寫群組數量。`--max-items` 的值不可小於 20 或大於 100。

**Example**  
以下程式碼清單會列出最多 100 個複寫群組的詳細資訊。  

```
aws elasticache describe-replication-groups
```
以下程式碼會列出 `sample-repl-group` 的詳細資訊。  

```
aws elasticache describe-replication-groups --replication-group-id sample-repl-group
```
以下程式碼會列出 `sample-repl-group` 的詳細資訊。  

```
aws elasticache describe-replication-groups --replication-group-id sample-repl-group
```
以下程式碼清單會列出最多 25 個複寫群組的詳細資訊。  

```
aws elasticache describe-replication-groups --max-items 25
```
此操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-001.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-002.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-003.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "rg-name.1abc4d.ng.0001.usw2.cache.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "rg-name", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "rg-name-002", 
         "MemberClusters": [
            "rg-name-001", 
            "rg-name-002", 
            "rg-name-003"
         ], 
         "PendingModifiedValues": {}
      }, 
      {
      ... some output omitted for brevity
      }
   ]
}
```

如需詳細資訊，請參閱適用於 ElastiCache AWS CLI 的 主題[describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)。

# 檢視複寫群組詳細資訊 (ElastiCache API)
<a name="Replication.ViewDetails.API"></a>

您可以使用 操作檢視複寫 AWS CLI `DescribeReplicationGroups`的詳細資訊。使用以下選用參數來縮小清單的搜尋範圍。忽略參數會傳回最多 100 個複寫群組的詳細資訊。

**選用的參數**
+ `ReplicationGroupId` - 使用此參數來列出特定複寫群組的詳細資訊。若指定複寫群組擁有超過一個節點群組，結果會以節點群組做為群組傳回。
+ `MaxRecords` - 使用此參數來限制列出的複寫群組數量。`MaxRecords` 的值不可小於 20 或大於 100。預設為 100。

**Example**  
以下程式碼清單會列出最多 100 個複寫群組的詳細資訊。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroups
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```
以下程式碼會列出 `myReplGroup` 的詳細資訊。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroups
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```
以下程式碼清單會列出最多 25 個叢集的詳細資訊。  

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

如需詳細資訊，請參閱 ElastiCache API 參考主題 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)。

# 尋找複寫群組端點
<a name="Replication.Endpoints"></a>

只要複寫群組提供節點的 DNS 端點和連接埠號碼，應用程式即可連線到複寫群組中的任何節點。視您執行的是 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組而定，您會對不同的端點感興趣。

**Valkey 或 Redis OSS （停用叢集模式）**  
具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集有三種端點類型：*主要端點*、*讀取器端點*和*節點端點*。主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除，讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS 叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ)，以確保讀取器端點的高可用性。

**注意**  
讀取者端點並非負載平衡器。它是一筆 DNS 記錄，會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動，應用程式也可連線到叢集中的任何節點。與主要端點不同，節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本)，您必須更新您應用程式中的節點端點。

**Valkey 或 Redis OSS （啟用叢集模式）**  
具有複本的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，因為它們具有多個碎片 (API/CLI：節點群組），這表示它們也具有多個主節點，與 Valkey 或 Redis OSS （停用叢集模式） 叢集具有不同的端點結構。Valkey 或 Redis OSS （啟用叢集模式） 具有*組態端點*，它「知道」叢集中的所有主要和節點端點。您的應用程式會連線到組態端點。每當您的應用程式從叢集的組態端點、Valkey 和 Redis OSS 寫入或讀取時，請在幕後判斷金鑰所屬的碎片，以及該碎片中要使用的端點。這對您的應用程式來說都相當透明。

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 尋找叢集的端點。

**尋找複寫群組端點**

若要尋找您複寫群組的端點，請參閱以下其中一個主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.RedisCluster)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

# 修改複寫群組
<a name="Replication.Modify"></a>

**重要限制**  
目前，ElastiCache 支援對 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組進行有限的修改，例如使用 API 操作 `ModifyReplicationGroup`(CLI：) 變更引擎版本`modify-replication-group`。您可以使用 API 操作 (CLI：) 修改 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html)（節點群組） 數目[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html)。如需詳細資訊，請參閱[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。  
對 Valkey 或 Redis OSS （啟用叢集模式） 叢集進行的其他修改需要您使用整合變更的新叢集來建立叢集。
您可以將 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組升級至較新的引擎版本。不過，您無法降級至舊版引擎，除非您刪除現有的叢集或複寫群組，並重新建立叢集。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。
您可以使用主控台、[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) API 或 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) CLI 命令，升級使用停用叢集模式的現有 ElastiCache for Valkey 或 Redis OSS 叢集，如下所示。或者，您也可以依照[修改叢集模式](modify-cluster-mode.md)中的步驟執行。

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 修改 Valkey 或 Redis OSS （停用叢集模式） 叢集的設定。目前，ElastiCache 支援對 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組進行有限數量的修改。其他修改需要您建立目前複寫群組的備份，然後使用該備份植入新的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

**Topics**
+ [使用 AWS 管理主控台](#Replication.Modify.CON)
+ [使用 AWS CLI](#Replication.Modify.CLI)
+ [使用 ElastiCache API](#Replication.Modify.API)

## 使用 AWS 管理主控台
<a name="Replication.Modify.CON"></a>

若要修改 Valkey 或 Redis OSS （停用叢集模式） 叢集，請參閱 [修改 ElastiCache 叢集](Clusters.Modify.md)。

## 使用 AWS CLI
<a name="Replication.Modify.CLI"></a>

以下是 `modify-replication-group`命令 AWS CLI 的範例。您可以使用相同命令對複寫群組進行其他修改。

**在現有的 Valkey 或 Redis OSS 複寫群組上啟用異地同步備份：**

針對 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --multi-az-enabled = true
```

針對 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --multi-az-enabled
```

**將叢集模式從停用修改為啟用：**

若要將叢集模式從*停用*修改為*啟用*，您必須先將叢集模式設定為*相容*。相容模式可讓 Valkey 或 Redis OSS 用戶端使用已啟用的叢集模式和已停用的叢集模式進行連線。遷移所有 Valkey 或 Redis OSS 用戶端以使用啟用的叢集模式後，您就可以完成叢集模式組態，並將叢集模式設定為*啟用*。

針對 Linux、macOS 或 Unix：

將叢集模式設為*相容*。

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --cache-parameter-group-name myParameterGroupName \
   --cluster-mode compatible
```

將叢集模式設為*啟用*。

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --cluster-mode enabled
```

針對 Windows：

將叢集模式設為*相容*。

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --cache-parameter-group-name myParameterGroupName ^
   --cluster-mode compatible
```

將叢集模式設為*啟用*。

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --cluster-mode enabled
```

如需 AWS CLI `modify-replication-group`命令的詳細資訊，請參閱《ElastiCache for Redis OSS [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 使用者指南》中的[或修改叢集模式]()。 *ElastiCache *

## 使用 ElastiCache API
<a name="Replication.Modify.API"></a>

下列 ElastiCache API 操作會在現有的 Valkey 或 Redis OSS 複寫群組上啟用異地同步備份。您可以使用相同操作對複寫群組進行其他修改。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyReplicationGroup
   &AutomaticFailoverEnabled=true  
   &Mutli-AZEnabled=true  
   &ReplicationGroupId=myReplGroup
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20141201T220302Z
   &Version=2014-12-01
   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   &X-Amz-Date=20141201T220302Z
   &X-Amz-SignedHeaders=Host
   &X-Amz-Expires=20141201T220302Z
   &X-Amz-Credential=<credential>
   &X-Amz-Signature=<signature>
```

如需 ElastiCache API `ModifyReplicationGroup` 作業的詳細資訊，請參閱「[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)」。

# 刪除複寫群組
<a name="Replication.DeletingRepGroup"></a>

若您不再需要您其中一個包含複本的叢集 (在 API/CLI 中稱為「複寫群組」**)，您可以刪除它。刪除複寫群組時，ElastiCache 也會刪除該群組中的所有節點。

此作業開始後便無法中斷或取消。

**警告**  
當您刪除 ElastiCache for Redis OSS 叢集時，會保留您的手動快照。您還可以選擇在刪除叢集之前建立最終快照。自動快取快照則不會保留。
`CreateSnapshot` 需要 許可才能建立最終快照。如果沒有此許可，API 呼叫將會失敗，但有`Access Denied`例外狀況。

## 刪除複寫群組 (主控台)
<a name="Replication.DeletingRepGroup.CON"></a>

若要刪除具有複本的叢集，請參閱[在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

## 刪除複寫群組 (AWS CLI)
<a name="Replication.DeletingRepGroup.CLI"></a>

使用命令 [delete-replication-group](https://docs.aws.amazon.com/AmazonElastiCache/latest/CommandLineReference/CLIReference-cmd-DeleteReplicationGroup.html) 來刪除複寫群組。

```
aws elasticache delete-replication-group --replication-group-id my-repgroup 
```

隨即出現提示，請您確認該項決定。輸入 *y* (是) 來立即啟動操作。在程序啟動後，便無法復原。

```
						
   After you begin deleting this replication group, all of its nodes will be deleted as well.
   Are you sure you want to delete this replication group? [Ny]y

REPLICATIONGROUP  my-repgroup  My replication group  deleting
```

## 刪除複寫群組 (ElastiCache API)
<a name="Replication.DeletingRepGroup.API"></a>

使用 `ReplicationGroup` 參數呼叫 [DeleteReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteReplicationGroup.html)。

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DeleteReplicationGroup
   &ReplicationGroupId=my-repgroup
   &Version=2014-12-01
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20141201T220302Z
   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   &X-Amz-Date=20141201T220302Z
   &X-Amz-SignedHeaders=Host
   &X-Amz-Expires=20141201T220302Z
   &X-Amz-Credential=<credential>
   &X-Amz-Signature=<signature>
```

**注意**  
若您將 `RetainPrimaryCluster` 參數設為 `true`，便會刪除所有僅供讀取複本，但仍會保留主要叢集。

# 變更複本的數量
<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 （停用叢集模式） 複寫群組中的複本數量增加最多五個。您可以使用 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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 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 (目前每個碎片的複本數)**，並小於等於五。我們建議您包含至少兩個複本，做為運作的最低需求。
   + 針對 **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` - 選用。指定您希望完成時擁有的複本節點數，最多五個。針對只有一個節點群組或 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` - 此作業結束後，您希望此節點群組中擁有的複本數。其值必須大於目前的複本數，最多五個。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `--replica-configuration`的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須在呼叫中包含 `--new-replica-count` 或 `--replica-configuration` 參數，但不可同時包含兩者。

**Example**  
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到三。範例完成時，每個節點群組中都會有三個複本。無論是具有單一節點群組的 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 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` - 選用。指定您希望完成時擁有的複本節點數，最多五個。將此參數用於只有一個節點群組的 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` - 此作業結束後，您希望此節點群組中擁有的複本數。其值必須大於目前的複本數，並且最多五個。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `ReplicaConfiguration` 的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須在呼叫中包含 `NewReplicaCount` 或 `ReplicaConfiguration` 參數，但不可同時包含兩者。

**Example**  
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到三。範例完成時，每個節點群組中都會有三個複本。無論是具有單一節點群組的 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 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 命令列參考*中的 [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 （停用叢集模式），如果啟用異地同步備份，您可以將複本數量減少為一個，如果未啟用，則可以減少為零。
+ 對於 Valkey 或 Redis OSS （啟用叢集模式），您可以將複本數量減少為零。但是，若主要節點失敗，您將無法容錯移轉至複本。

您可以使用 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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 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 1 的值，以包含主要節點。如果省略 `--replica-configuration`的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `--new-replica-count`、`--replicas-to-remove` 或 `--replica-configuration` 參數。

**Example**  
以下範例會使用 `--new-replica-count` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 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
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  
若為 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 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 1 的值，以包含主要節點。如果省略 `ReplicaConfiguration` 的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `NewReplicaCount`、`ReplicasToRemove` 或 `ReplicaConfiguration` 參數。

**Example**  
以下範例會使用 `NewReplicaCount` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 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>
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  

```
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 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 命令列參考*中的 [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 （停用叢集模式） 複寫群組最多可有五個僅供讀取複本。若您嘗試將僅供讀取複本新增到已有五個僅供讀取複本的複寫群組，操作便會失敗。

如需將複本新增至 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 適用於 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)

# 針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本
<a name="Replication.PromoteReplica"></a>

下列主題中的資訊僅適用於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

您可以使用 AWS CLI、 或 ElastiCache API AWS 管理主控台，將 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本提升為主要複本。您無法在 複寫群組上啟用具備自動容錯移轉的異地同步備份時，將僅供讀取複本提升為主要節點。若要將啟用異地同步備份的複寫群組上的 Valkey 或 Redis OSS （停用叢集模式） 複本提升為主要複本，請執行下列動作：

1. 修改複寫群組以停用異地同步備份 (您所有的叢集不需要位於相同可用區域，也能執行此作業)。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

1. 將僅供讀取複本提升為主要節點。

1. 修改複寫群組來重新啟用異地同步備份。

多個可用區不適用於執行 Redis OSS 2.6.13 或更早版本的複寫群組。

## 使用 AWS 管理主控台
<a name="Replication.PromoteReplica.CON"></a>

以下程序會使用主控台將複本節點提升為主要節點。

**將僅供讀取複本提升為主節點 (主控台)**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 如果您想要提升的複本是啟用異地同步備份的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組的成員，請在繼續之前修改複寫群組以停用異地同步備份。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

1. 選擇 **Valkey** 或 **Redis OSS**，然後從叢集清單中選擇您要修改的複寫群組。此複寫群組必須執行「Redis」引擎而非「Clustered Redis」引擎，並且必須至少擁有兩個以上的節點。

1. 從節點清單中，選擇您希望提升為主要節點的複本節點，然後針對 **Actions (動作)**，選擇 **Promote (提升)**。

1. 在 **Promote Read Replica (提升僅供讀取複本)** 對話方塊中，執行下列作業：

   1. 針對**立即套用**，選擇 **Yes (是)** 來立即提升僅供讀取複本，或是 **No (否)** 來在下一次叢集的維修時間內提升。

   1. 選擇 **Promote (提升)** 以提升僅供讀取複本，或選擇 **Cancel (取消)** 以取消操作。

1. 若在您開始提升程序前該叢集已啟用異地同步備份，請等到複寫群組的狀態成為 **available (可用)** 時再修改叢集以重新啟用異地同步備份。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

## 使用 AWS CLI
<a name="Replication.PromoteReplica.CLI"></a>

若複寫群組已啟用異地同步備份，您便無法將僅供讀取複本提升為主要節點。在某些情況下，您要提升的複本可能是已啟用異地同步備份的複寫群組的成員。在這些情況下，您必須先修改複寫群組來停用異地同步備份，之後才能繼續。您所有的叢集不需要位於相同可用區域，也能執行此作業。如需修改複寫群組的詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

下列 AWS CLI 命令會修改複寫群組 `sample-repl-group`，使僅供讀取複本`my-replica-1`成為複寫群組中的主要複本。

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id sample-repl-group \
   --primary-cluster-id my-replica-1
```

針對 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id sample-repl-group ^
   --primary-cluster-id my-replica-1
```

如需修改複寫群組的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)。

## 使用 ElastiCache API
<a name="Replication.PromoteReplica.API"></a>

若複寫群組已啟用異地同步備份，您便無法將僅供讀取複本提升為主要節點。在某些情況下，您要提升的複本可能是已啟用異地同步備份的複寫群組的成員。在這些情況下，您必須先修改複寫群組來停用異地同步備份，之後才能繼續。您所有的叢集不需要位於相同可用區域，也能執行此作業。如需修改複寫群組的詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

以下 ElastiCache API 動作會修改 `myReplGroup` 複寫群組，使僅供讀取複本 `myReplica-1` 成為複寫群組中的主節點。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyReplicationGroup
   &ReplicationGroupId=myReplGroup
   &PrimaryClusterId=myReplica-1  
   &Version=2014-12-01
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20141201T220302Z
   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   &X-Amz-Date=20141201T220302Z
   &X-Amz-SignedHeaders=Host
   &X-Amz-Expires=20141201T220302Z
   &X-Amz-Credential=<credential>
   &X-Amz-Signature=<signature>
```

如需修改複寫群組的詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)。

# 管理 ElastiCache 叢集維護
<a name="maintenance-window"></a>

每個叢集都有每週一次的維護時段，會在此期間套用任何系統變更。透過 Valkey 和 Redis OSS，複寫群組具有相同的每週維護時段。若您在建立或修改叢集或複寫群組時沒有指定偏好的維護時段，ElastiCache 會隨機選取一週中某一天，在您區域的維護時段內指派 60 分鐘的維護時段。

60 分鐘的維護時段隨機選自每個區域的 8 小時時段。以下資料表列出每個區域的時段，預設維護時段會從此時段中指派。您可以選擇區域維護時段以外的偏好維護時段。


| 區域代碼 | 區域名稱 | 區域維護時段 | 
| --- | --- | --- | 
| ap-northeast-1 | 亞太 (東京) 區域 | 13:00–21:00 UTC | 
| ap-northeast-2 | 亞太 (首爾) 區域 | 12:00–20:00 UTC | 
| ap-northeast-3 | 亞太 (大阪) 區域 | 12:00–20:00 UTC | 
| ap-southeast-3 | 亞太區域 (雅加達) | 14:00–22:00 UTC | 
| ap-south-1 | 亞太 (孟買) 區域 | 17:30-1:30 (UTC) | 
| ap-southeast-1 | 亞太 (新加坡) 區域 | 14:00–22:00 UTC | 
| cn-north-1 | 中國 (北京) 區域 | 下午 2 時至 10 時 (UTC) | 
| cn-northwest-1 | 中國 (寧夏) 區域 | 14:00–22:00 UTC | 
| ap-east-1 | 亞太區域 (香港) 區域 | 13:00–21:00 UTC | 
| ap-southeast-2 | 亞太 (雪梨) 區域 | 12:00–20:00 UTC | 
| eu-west-3 | 歐洲 (巴黎) 區域 | 下午 11 時 59 分至上午 7 時 29 分 (UTC) | 
| af-south-1 | 非洲 (開普敦) 區域 | 13:00–21:00 UTC | 
| eu-central-1 | 歐洲 (法蘭克福) 區域 | 23:00–07:00 UTC | 
| eu-west-1 | 歐洲 (愛爾蘭) 區域 | 下午 10 時至次日上午 6 時 (UTC) | 
| eu-west-2 | 歐洲 (倫敦) 區域 | 23:00–07:00 UTC | 
| me-south-1 | Middle East (Bahrain) Region | 13:00–21:00 UTC | 
| me-central-1 | 中東 (阿拉伯聯合大公國) 區域 | 13:00–21:00 UTC | 
| eu-south-1 | Europe (Milan) Region | 21:00–05:00 UTC | 
| sa-east-1 | 南美洲 (聖保羅) 區域 | 01:00-09:00 (UTC) | 
| us-east-1 | 美國東部 (維吉尼亞北部) 區域 | 上午 3 時至上午 11 時 (UTC) | 
| us-east-2 | 美國東部 (俄亥俄) 區域 | 04:00-12:00 (UTC) | 
| us-gov-west-1 | AWS GovCloud (US) 區域 | 06:00–14:00 UTC | 
| us-west-1 | 美國西部 (加利佛尼亞北部) 區域 | 06:00–14:00 UTC | 
| us-west-2 | 美國西部 (奧勒岡) 區域 | 06:00–14:00 UTC | 

**變更叢集或複寫群組的維護時段**  
維護時段應落在使用量最低的時段，因此可能需要不時進行調整。您可以修改叢集或複寫群組來指定時間範圍，最多 24 小時，您已請求的所有維護活動都會在此期間進行。在此期間會進行所有您請求的延遲或待處理叢集修改。

**注意**  
如果您想要使用 AWS 管理主控台 選取**立即套用**方塊，立即套用節點類型修改和/或引擎升級。否則，這些修改將在您排程的下一次維護時段套用。若要使用 API，請參閱 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)或 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

**其他資訊**  
如需維護時段和節點取代的資訊，請參閱下列內容：
+ [ElastiCache 維護](https://aws.amazon.com/elasticache/elasticache-maintenance/) - 維護和節點更換的常見問答集
+ [取代節點 (Memcached)](CacheNodes.NodeReplacement-mc.md)—管理 Memcached 的節點替換
+ [修改 ElastiCache 叢集](Clusters.Modify.md) - 變更叢集的維護時段
+ [取代節點 (Valkey 和 Redis OSS)](CacheNodes.NodeReplacement.md) - 管理節點更換
+ [修改複寫群組](Replication.Modify.md) - 變更複寫群組的維護時段

# 使用 ElastiCache 參數群組設定引擎參數
<a name="ParameterGroups"></a>

Amazon ElastiCache 使用參數控制您節點與叢集的執行時間屬性。一般而言，更新的引擎版本會包含額外參數，可支援更新的功能。如需 Memcached 參數的資料表，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)。如需 Valkey 和 Redis OSS 參數的資料表，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

如您所預期的，有些參數值 (例如 `maxmemory`) 會由引擎與節點類型決定。如需依節點類型列出這些 Memcached 參數值的資料表，請參閱 [Memcached 節點類型專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached.NodeSpecific)。如需這些依節點類型的 Valkey 和 Redis OSS 參數值的資料表，請參閱 [Redis OSS 節點類型特定參數](ParameterGroups.Engine.md#ParameterGroups.Redis.NodeSpecific)。

**注意**  
如需 Memcached 限定參數，請參閱 [Memcached 限定參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)。

**Topics**
+ [ElastiCache 中的參數管理](ParameterGroups.Management.md)
+ [ElastiCache 中的快取參數群組層](ParameterGroups.Tiers.md)
+ [建立 ElastiCache 參數群組](ParameterGroups.Creating.md)
+ [依名稱列出 ElastiCache 參數群組](ParameterGroups.ListingGroups.md)
+ [列出 ElastiCache 參數群組的值](ParameterGroups.ListingValues.md)
+ [修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)
+ [刪除 ElastiCache 參數群組](ParameterGroups.Deleting.md)
+ [引擎特定參數](ParameterGroups.Engine.md)

# ElastiCache 中的參數管理
<a name="ParameterGroups.Management"></a>

ElastiCache 參數會分組為具名參數群組，以便於管理參數。參數群組代表在啟動期間傳遞給引擎軟體的參數特定值組合。這些值會決定每個節點上的引擎程序在執行時間的行為。特定參數群組上的參數值會套用到所有與群組相關聯的節點，無論節點所屬的叢集為何。

若要調整您叢集的效能，您可以修改一部分的參數值，或是變更叢集的參數群組。
+ 您無法修改或刪除預設參數群組。若您需要自訂參數值，您必須建立自訂參數群組。
+ 對於 Memcached，參數群組系列和您要指派給它的叢集必須相容。例如，若您的叢集執行 Memcached 1.4.8 版，您只能使用來自 Memcached 1.4 系列的參數群組 (預設或自訂)。

  對於 Redis OSS，參數群組系列和您要指派給它的叢集必須相容。例如，如果您的叢集執行 Redis OSS 3.2.10 版，您只能使用 Redis OSS 3.2 系列的預設或自訂參數群組。
+ 若您變更叢集的參數群組，任何可條件式修改的參數值在目前及新的參數群組中都必須相同。
+ 對於 Memcached，當您變更叢集的參數時，變更會立即套用至叢集。無論是變更叢集的參數群組本身或是叢集的參數群組內的參數值，均適用此情況。若要判斷特定參數變更何時套用，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached) 資料表中的**變更生效**。如需重新啟動叢集節點的相關資訊，請參閱[重新啟動叢集](Clusters.html#Rebooting)。
+ 對於 Redis OSS，當您變更叢集的參數時，變更會立即套用到叢集，或在叢集節點重新啟動後套用到叢集，但例外狀況如下。無論是變更叢集的參數群組本身或是叢集的參數群組內的參數值，均適用此情況。若要判斷特定參數變更何時套用，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis) 資料表中的**變更生效**。

  如需重新啟動 Valkey 或 Redis OSS 節點的詳細資訊，請參閱 [重新啟動節點](nodes.rebooting.md)。
**Valkey 或 Redis OSS （啟用叢集模式） 參數變更**  
如果您在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上變更下列參數，請遵循後續步驟。  
activerehashing
databases
建立叢集的手動備份。請參閱 [取得手動備份](backups-manual.md)。
刪除叢集。請參閱[刪除叢集](Clusters.html#Delete)。
使用更改的參數群組和備份來植入新的叢集，以還原叢集。請參閱 [從備份還原到新的快取](backups-restoring.md)。
對其他參數進行變更不需要這樣做。
+ 您可以將參數群組與 Valkey 和 Redis OSS 全域資料存放區建立關聯。*全域資料存放區*是跨 AWS 區域的一或多個叢集集合。在此情況下，組成全域資料存放區的所有叢集都會共用參數群組。對主要叢集參數群組進行的任何修改都會複寫到全域資料存放區中的所有其餘叢集。如需詳細資訊，請參閱[使用全域資料存放區跨AWS區域複寫](Redis-Global-Datastore.md)。

  您可以查看下列位置來檢查參數群組是否屬於全域資料存放區的一部分：
  + ElastiCache 主控台的 **Parameter Groups (參數群組)** 頁面上的 yes/no **Global (全域) 屬性** 
  + [CacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CacheParameterGroup.html) API 作業的 yes/no `IsGlobal` 屬性

# ElastiCache 中的快取參數群組層
<a name="ParameterGroups.Tiers"></a>

Amazon ElastiCache 有三層快取參數群組，如下所示。

![\[圖片：Amazon ElastiCache 參數群組層\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-ParameterGroups-Tiers.png)


*Amazon ElastiCache 參數群組層*

**全域預設**

區域內所有 Amazon ElastiCache 客戶的最上層根參數群組。

全域預設快取參數群組：
+ 會為 ElastiCache 保留，客戶無法使用。

**客戶預設**

全域預設快取參數群組的複本，其建立的目的是供客戶使用。

客戶預設快取參數群組：
+ 由 ElastiCache 建立和擁有。
+ 可供客戶用來做為任何執行此快取參數群組所支援引擎版本叢集的快取參數群組使用。
+ 客戶無法對其進行編輯。

**客戶自有**

客戶預設快取參數群組的複本。客戶自有快取參數群組會在客戶建立快取參數群組時建立。

客戶自有快取參數群組：
+ 由客戶建立及擁有。
+ 可指派給任何客戶的相容叢集。
+ 客戶可對其進行修改，建立自訂快取參數群組。

  並非所有參數值皆可修改。如需 Memcached 值的詳細資訊，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)。如需 Valkey 和 Redis OSS 值的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

# 建立 ElastiCache 參數群組
<a name="ParameterGroups.Creating"></a>

若您希望修改不同於預設值的一或多個參數值，便需要建立新的參數群組。您可以使用 ElastiCache 主控台、 AWS CLI或 ElastiCache API 建立參數群組。

## 建立 ElastiCache 參數群組 （主控台）
<a name="ParameterGroups.Creating.CON"></a>

下列程序說明如何使用 ElastiCache 主控台建立參數群組。

**使用 ElastiCache 主控台建立參數群組**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 若要查看所有可用參數群組的清單，請從左側的導覽窗格中，選擇 **Parameter Groups (參數群組)**。

1. 若要建立新的參數群組，請選擇 **Create Parameter Group (建立參數群組)**。

   **Create Parameter Group (建立參數群組)** 畫面隨即出現。

1. 從 **Family (系列)** 清單，選擇做為您參數群組範本的參數群組系列。

   參數群組系列，例如 *memcached1.4* 或 *redis3.2，會*定義參數群組中的實際參數及其初始值。參數群組系列必須與叢集的引擎和版本一致。

1. 在 **Name (名稱)** 方塊中，輸入此參數群組的唯一名稱。

   建立叢集或修改叢集的參數群組時，您便會根據其名稱選擇參數群組。因此，我們建議選擇附帶資訊且能以某種方式識別參數群組系列的名稱。

   參數群組命名限制條件如下：
   + 必須以 ASCII 字母開頭。
   + 它只能包含 ASCII 字母、數字和連字符號。
   + 長度必須介於 1 至 255 個字元之間。
   + 不能連續包含兩個連字號。
   + 結尾不能是連字號。

1. 在 **Description (描述)** 方塊中，輸入參數群組的描述。

1. 若要建立參數群組，請選擇 **Create (建立)**。

   若要終止程序而不建立參數群組，請選擇 **Cancel (取消)**。

1. 建立參數群組時，它會擁有系列的預設值。若要變更預設值，您必須修改參數群組。如需詳細資訊，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。

## 建立 ElastiCache 參數群組 (AWS CLI)
<a name="ParameterGroups.Creating.CLI"></a>

若要使用 建立參數群組 AWS CLI，請使用 命令`create-cache-parameter-group`搭配這些參數。
+ `--cache-parameter-group-name` - 參數群組的名稱。

  參數群組命名限制條件如下：
  + 必須以 ASCII 字母開頭。
  + 它只能包含 ASCII 字母、數字和連字符號。
  + 長度必須介於 1 至 255 個字元之間。
  + 不能連續包含兩個連字號。
  + 結尾不能是連字號。
+ `--cache-parameter-group-family` - 參數群組的引擎和版本系列。
+ `--description` - 使用者提供的參數群組說明。

**Example**  
以下範例會建立名為 *myMem14* 的參數群組，並使用 memcached1.4 系列做為範本。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache create-cache-parameter-group \
    --cache-parameter-group-name myMem14  \
    --cache-parameter-group-family memcached1.4 \
    --description "My first parameter group"
```
針對 Windows：  

```
aws elasticache create-cache-parameter-group ^
    --cache-parameter-group-name myMem14  ^
    --cache-parameter-group-family memcached1.4 ^
    --description "My first parameter group"
```
此命令的輸出看起來會與以下內容相似。  

```
{
    "CacheParameterGroup": {
        "CacheParameterGroupName": "myMem14", 
        "CacheParameterGroupFamily": "memcached1.4", 
        "Description": "My first  parameter group"
    }
}
```

**Example**  
以下範例會建立名為 *myRed28* 的參數群組，並使用 redis2.8 系列做為範本。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache create-cache-parameter-group \
    --cache-parameter-group-name myRed28  \
    --cache-parameter-group-family redis2.8 \
    --description "My first parameter group"
```
針對 Windows：  

```
aws elasticache create-cache-parameter-group ^
    --cache-parameter-group-name myRed28  ^
    --cache-parameter-group-family redis2.8 ^
    --description "My first parameter group"
```
此命令的輸出看起來會與以下內容相似。  

```
{
    "CacheParameterGroup": {
        "CacheParameterGroupName": "myRed28", 
        "CacheParameterGroupFamily": "redis2.8", 
        "Description": "My first parameter group"
    }
}
```

建立參數群組時，它會擁有系列的預設值。若要變更預設值，您必須修改參數群組。如需詳細資訊，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。

如需詳細資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-parameter-group.html)。

## 建立 ElastiCache 參數群組 (ElastiCache API)
<a name="ParameterGroups.Creating.API"></a>

若要使用 ElastiCache API 建立參數群組，請搭配這些參數使用 `CreateCacheParameterGroup` 動作。
+ `ParameterGroupName` - 參數群組的名稱。

  參數群組命名限制條件如下：
  + 必須以 ASCII 字母開頭。
  + 它只能包含 ASCII 字母、數字和連字符號。
  + 長度必須介於 1 至 255 個字元之間。
  + 不能連續包含兩個連字號。
  + 結尾不能是連字號。
+ `CacheParameterGroupFamily` - 參數群組的引擎和版本系列。例如 `memcached1.4`。
+ `CacheParameterGroupFamily` - 參數群組的引擎和版本系列。例如 `redis2.8`。
+ `Description` - 使用者提供的參數群組說明。

**Example**  
以下範例會建立名為 *myMem14* 的參數群組，並使用 memcached1.4 系列做為範本。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateCacheParameterGroup
   &CacheParameterGroupFamily=memcached1.4
   &CacheParameterGroupName=myMem14
   &Description=My%20first%20parameter%20group
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似。  

```
<CreateCacheParameterGroupResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <CreateCacheParameterGroupResult>
    <CacheParameterGroup>
      <CacheParameterGroupName>myMem14</CacheParameterGroupName>
      <CacheParameterGroupFamily>memcached1.4</CacheParameterGroupFamily>
      <Description>My first  parameter group</Description>
    </CacheParameterGroup>
  </CreateCacheParameterGroupResult>
  <ResponseMetadata>
    <RequestId>d8465952-af48-11e0-8d36-859edca6f4b8</RequestId>
  </ResponseMetadata>
</CreateCacheParameterGroupResponse>
```

**Example**  
以下範例會建立名為 *myRed28* 的參數群組，並使用 redis2.8 系列做為範本。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateCacheParameterGroup
   &CacheParameterGroupFamily=redis2.8
   &CacheParameterGroupName=myRed28
   &Description=My%20first%20parameter%20group
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似。  

```
<CreateCacheParameterGroupResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <CreateCacheParameterGroupResult>
    <CacheParameterGroup>
      <CacheParameterGroupName>myRed28</CacheParameterGroupName>
      <CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily>
      <Description>My first parameter group</Description>
    </CacheParameterGroup>
  </CreateCacheParameterGroupResult>
  <ResponseMetadata>
    <RequestId>d8465952-af48-11e0-8d36-859edca6f4b8</RequestId>
  </ResponseMetadata>
</CreateCacheParameterGroupResponse>
```

建立參數群組時，它會擁有系列的預設值。若要變更預設值，您必須修改參數群組。如需詳細資訊，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。

如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheParameterGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheParameterGroup.html)。

# 依名稱列出 ElastiCache 參數群組
<a name="ParameterGroups.ListingGroups"></a>

您可以使用 ElastiCache 主控台、 AWS CLI或 ElastiCache API 列出參數群組。

## 依名稱列出參數群組 (主控台)
<a name="ParameterGroups.ListingGroups.CON"></a>

下列程序說明如何使用 ElastiCache 主控台檢視參數群組清單。

**使用 ElastiCache 主控台列出參數群組**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 若要查看所有可用參數群組的清單，請從左側的導覽窗格中，選擇 **Parameter Groups (參數群組)**。

## 依名稱列出 ElastiCache 參數群組 (AWS CLI)
<a name="ParameterGroups.ListingGroups.CLI"></a>

若要使用 產生參數群組清單 AWS CLI，請使用 命令 `describe-cache-parameter-groups`。若您提供參數群組的名稱，便只會列出該參數群組。若您沒有提供參數群組的名稱，最多會列出 `--max-records` 個參數群組。在任一種情況下，都會列出參數群組的名稱、系列和描述。

**Example**  
以下範本程式碼會列出 *myMem14* 參數群組。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-parameter-groups \
    --cache-parameter-group-name myMem14
```
針對 Windows：  

```
aws elasticache describe-cache-parameter-groups ^
    --cache-parameter-group-name myMem14
```
此命令的輸出看起來會與以下內容相似，列出參數群組的名稱、系列和描述。  

```
{
    "CacheParameterGroups": [
	    {
	        "CacheParameterGroupName": "myMem14", 
	        "CacheParameterGroupFamily": "memcached1.4", 
	        "Description": "My first parameter group"
	    }
    ]
}
```

**Example**  
以下範本程式碼會列出 *myRed28* 參數群組。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-parameter-groups \
    --cache-parameter-group-name myRed28
```
針對 Windows：  

```
aws elasticache describe-cache-parameter-groups ^
    --cache-parameter-group-name myRed28
```
此命令的輸出看起來會與以下內容相似，列出參數群組的名稱、系列和描述。  

```
{
    "CacheParameterGroups": [
	    {
	        "CacheParameterGroupName": "myRed28", 
	        "CacheParameterGroupFamily": "redis2.8", 
	        "Description": "My first parameter group"
	    }
    ]
}
```

**Example**  
下列範例程式碼列出在 Redis OSS 引擎版本 *myRed56*56。如果參數組是 [使用全域資料存放區跨AWS區域複寫](Redis-Global-Datastore.md) 的一部分，則在輸出中傳回的 `IsGlobal` 屬性值將是 `Yes`。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-parameter-groups \
    --cache-parameter-group-name myRed56
```
針對 Windows：  

```
aws elasticache describe-cache-parameter-groups ^
    --cache-parameter-group-name myRed56
```
此命令的輸出看起來會與以下內容相似，列出參數群組的名稱、系列、isGlobal 和描述。  

```
{
    "CacheParameterGroups": [
	    {
	        "CacheParameterGroupName": "myRed56", 
	        "CacheParameterGroupFamily": "redis5.0", 	        
	        "Description": "My first parameter group",
	        "IsGlobal": "yes"	        
	    }
    ]
}
```

**Example**  
以下範本程式碼會列出最多 10 個參數群組。  

```
aws elasticache describe-cache-parameter-groups --max-records 10
```
此命令的 JSON 輸出看起來像這樣：列出每個參數群組的名稱、系列、描述，以及在使用 redis5.6 的情況下，參數群組是否為全域資料存放區 (isGlobal) 的一部分。  

```
{
    "CacheParameterGroups": [
        {
            "CacheParameterGroupName": "custom-redis32", 
            "CacheParameterGroupFamily": "redis3.2", 
            "Description": "custom parameter group with reserved-memory > 0"
        }, 
        {
            "CacheParameterGroupName": "default.memcached1.4", 
            "CacheParameterGroupFamily": "memcached1.4", 
            "Description": "Default parameter group for memcached1.4"
        }, 
        {
            "CacheParameterGroupName": "default.redis2.6", 
            "CacheParameterGroupFamily": "redis2.6", 
            "Description": "Default parameter group for redis2.6"
        }, 
        {
            "CacheParameterGroupName": "default.redis2.8", 
            "CacheParameterGroupFamily": "redis2.8", 
            "Description": "Default parameter group for redis2.8"
        }, 
        {
            "CacheParameterGroupName": "default.redis3.2", 
            "CacheParameterGroupFamily": "redis3.2", 
            "Description": "Default parameter group for redis3.2"
        }, 
        {
            "CacheParameterGroupName": "default.redis3.2.cluster.on", 
            "CacheParameterGroupFamily": "redis3.2", 
            "Description": "Customized default parameter group for redis3.2 with cluster mode on"
        },
        {
            "CacheParameterGroupName": "default.redis5.6.cluster.on", 
            "CacheParameterGroupFamily": "redis5.0", 
            "Description": "Customized default parameter group for redis5.6 with cluster mode on",
            "isGlobal": "yes"
        },
    ]
}
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-parameter-groups.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-parameter-groups.html)。

## 依名稱列出 ElastiCache 參數群組 (ElastiCache API)
<a name="ParameterGroups.ListingGroups.API"></a>

若要使用 ElastiCache API 產生參數群組清單，請使用 `DescribeCacheParameterGroups` 動作。若您提供參數群組的名稱，便只會列出該參數群組。若您沒有提供參數群組的名稱，最多會列出 `MaxRecords` 個參數群組。在任一種情況下，都會列出參數群組的名稱、系列和描述。

**Example**  
以下範本程式碼會列出 *myMem14* 參數群組。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameterGroups
   &CacheParameterGroupName=myMem14
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似，列出每個參數群組的名稱、系列和描述。  

```
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParameterGroupsResult>
    <CacheParameterGroups>
      <CacheParameterGroup>
        <CacheParameterGroupName>myMem14</CacheParameterGroupName>
        <CacheParameterGroupFamily>memcached1.4</CacheParameterGroupFamily>
        <Description>My custom Memcached 1.4 parameter group</Description>
      </CacheParameterGroup>
    </CacheParameterGroups>
  </DescribeCacheParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
```

**Example**  
以下範本程式碼會列出最多 10 個參數群組。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameterGroups
   &MaxRecords=10
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來像這樣：列出每個參數群組的名稱、系列、描述，以及在使用 redis5.6 的情況下，參數群組是否屬於全域資料存放區 (isGlobal)。  

```
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParameterGroupsResult>
    <CacheParameterGroups>
      <CacheParameterGroup>
        <CacheParameterGroupName>myRedis28</CacheParameterGroupName>
        <CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily>
        <Description>My custom Redis 2.8 parameter group</Description>
      </CacheParameterGroup>
      <CacheParameterGroup>
        <CacheParameterGroupName>myMem14</CacheParameterGroupName>
        <CacheParameterGroupFamily>memcached1.4</CacheParameterGroupFamily>
        <Description>My custom Memcached 1.4 parameter group</Description>
      </CacheParameterGroup>
       <CacheParameterGroup>
        <CacheParameterGroupName>myRedis56</CacheParameterGroupName>
        <CacheParameterGroupFamily>redis5.0</CacheParameterGroupFamily>
        <Description>My custom redis 5.6 parameter group</Description>
        <isGlobal>yes</isGlobal>
      </CacheParameterGroup>
    </CacheParameterGroups>
  </DescribeCacheParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
```

**Example**  
以下範本程式碼會列出 *myRed28* 參數群組。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameterGroups
   &CacheParameterGroupName=myRed28
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似，列出名稱、系列和描述。  

```
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParameterGroupsResult>
    <CacheParameterGroups>
      <CacheParameterGroup>
        <CacheParameterGroupName>myRed28</CacheParameterGroupName>
        <CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily>
        <Description>My custom Redis 2.8 parameter group</Description>
      </CacheParameterGroup>
    </CacheParameterGroups>
  </DescribeCacheParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
```

**Example**  
以下範本程式碼會列出 *myRed56* 參數群組。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameterGroups
   &CacheParameterGroupName=myRed56
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來像這樣：列出名稱、系列、描述以及參數群組是否為全域資料存放區 (isGlobal) 的一部分。  

```
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParameterGroupsResult>
    <CacheParameterGroups>
      <CacheParameterGroup>
        <CacheParameterGroupName>myRed56</CacheParameterGroupName>
        <CacheParameterGroupFamily>redis5.0</CacheParameterGroupFamily>
        <Description>My custom Redis 5.6 parameter group</Description>
        <isGlobal>yes</isGlobal>
      </CacheParameterGroup>
    </CacheParameterGroups>
  </DescribeCacheParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameterGroups.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameterGroups.html)。

# 列出 ElastiCache 參數群組的值
<a name="ParameterGroups.ListingValues"></a>

您可以使用 ElastiCache 主控台、 AWS CLI或 ElastiCache API 列出參數群組的參數及其值。

## 列出 ElastiCache 參數群組的值 （主控台）
<a name="ParameterGroups.ListingValues.CON"></a>

下列程序說明如何使用 ElastiCache 主控台列出參數群組的參數及其值。

**使用 ElastiCache 主控台列出參數群組的參數及其值**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 若要查看所有可用參數群組的清單，請從左側的導覽窗格中，選擇 **Parameter Groups (參數群組)**。

1. 透過選擇參數群組名稱左側的方塊，選擇您希望列出其參數及值的參數群組。

   參數及其值會在畫面底部列出。根據參數的數量，您可能需要向上或向下捲動來尋找您想要的參數。

## 列出參數群組的值 (AWS CLI)
<a name="ParameterGroups.ListingValues.CLI"></a>

若要使用 列出參數群組的參數及其值 AWS CLI，請使用 命令 `describe-cache-parameters`。

**Example**  
下列範例程式碼會列出參數群組 *myMem14* 的所有 Memcached 參數及其值。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-parameters \
    --cache-parameter-group-name myMem14
```
針對 Windows：  

```
aws elasticache describe-cache-parameters ^
    --cache-parameter-group-name myMem14
```

**Example**  
以下範本程式碼會列出 *myRedis28* 參數群組的所有參數及其值。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-parameters \
    --cache-parameter-group-name myRedis28
```
針對 Windows：  

```
aws elasticache describe-cache-parameters ^
    --cache-parameter-group-name myRed28
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-parameters.html)。

## 列出參數群組的值 (ElastiCache API)
<a name="ParameterGroups.ListingValues.API"></a>

若要使用 ElastiCache API 列出參數群組的參數及其值，請使用 `DescribeCacheParameters` 動作。

**Example**  
下列範例程式碼會列出參數群組 *myMem14* 的所有 Memcached 參數。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameters
   &CacheParameterGroupName=myMem14
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似。此回應已進行截斷。  

```
<DescribeCacheParametersResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParametersResult>
    <CacheClusterClassSpecificParameters>
      <CacheNodeTypeSpecificParameter>
        <DataType>integer</DataType>
        <Source>system</Source>
        <IsModifiable>false</IsModifiable>
        <Description>The maximum configurable amount of memory to use to store items, in megabytes.</Description>
        <CacheNodeTypeSpecificValues>
          <CacheNodeTypeSpecificValue>
            <Value>1000</Value>
            <CacheClusterClass>cache.c1.medium</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>6000</Value>
            <CacheClusterClass>cache.c1.xlarge</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>7100</Value>
            <CacheClusterClass>cache.m1.large</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>1300</Value>
            <CacheClusterClass>cache.m1.small</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          
...output omitted...

    </CacheClusterClassSpecificParameters>
  </DescribeCacheParametersResult>
  <ResponseMetadata>
    <RequestId>6d355589-af49-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParametersResponse>
```

**Example**  
以下範本程式碼會列出 *myRed28* 參數群組的所有參數。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheParameters
   &CacheParameterGroupName=myRed28
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```
此動作的回應看起來會與以下內容相似。此回應已進行截斷。  

```
<DescribeCacheParametersResponse xmlns="http://elasticache.amazonaws.com/doc/2013-06-15/">
  <DescribeCacheParametersResult>
    <CacheClusterClassSpecificParameters>
      <CacheNodeTypeSpecificParameter>
        <DataType>integer</DataType>
        <Source>system</Source>
        <IsModifiable>false</IsModifiable>
        <Description>The maximum configurable amount of memory to use to store items, in megabytes.</Description>
        <CacheNodeTypeSpecificValues>
          <CacheNodeTypeSpecificValue>
            <Value>1000</Value>
            <CacheClusterClass>cache.c1.medium</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>6000</Value>
            <CacheClusterClass>cache.c1.xlarge</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>7100</Value>
            <CacheClusterClass>cache.m1.large</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          <CacheNodeTypeSpecificValue>
            <Value>1300</Value>
            <CacheClusterClass>cache.m1.small</CacheClusterClass>
          </CacheNodeTypeSpecificValue>
          
...output omitted...

    </CacheClusterClassSpecificParameters>
  </DescribeCacheParametersResult>
  <ResponseMetadata>
    <RequestId>6d355589-af49-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeCacheParametersResponse>
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameters.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheParameters.html)。

# 修改 ElastiCache 參數群組
<a name="ParameterGroups.Modifying"></a>

**重要**  
您無法修改任何預設參數群組。

您可以修改參數群組中的某些參數值。這些參數值都會套用到與參數群組相關聯的叢集。如需何時將參數值變更套用至參數群組的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)和 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)。

## 修改參數群組 (主控台)
<a name="ParameterGroups.Modifying.CON"></a>

下列程序說明如何使用 ElastiCache 主控台變更 `cluster-enabled` 參數的值。您會使用相同的程序來變更任何參數的值。

**使用 ElastiCache 主控台變更參數值**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 若要查看所有可用參數群組的清單，請從左側的導覽窗格中，選擇 **Parameter Groups (參數群組)**。

1. 透過選擇參數群組名稱左側的方塊，選擇您希望修改的參數群組。

   參數群組的參數會在畫面底部列出。您可能需要查看各頁才能看到所有參數。

1. 若要修改一或多個參數，請選擇 **Edit Parameters (編輯參數)**。

1. 在 **Edit Parameter Group: (編輯參數群組：)** 畫面中，使用向左和向右箭頭捲動，直到找到 `binding_protocol` 參數，然後在 **Value (數值)** 欄中輸入 `ascii`。

1. 選擇 **Save Changes** (儲存變更)。

1. 對於 Memcached，若要尋找您變更的參數名稱，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)。若變更是在「重新啟動之後」**才套用到參數，請重新開機每個使用此參數群組的叢集。如需詳細資訊，請參閱[重新啟動叢集](Clusters.html#Rebooting)。

1. 使用 Valkey 和 Redis OSS，若要尋找您變更的參數名稱，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。如果您有 Valkey 或 Redis OSS （停用叢集模式） 叢集，並變更下列參數，則必須重新啟動叢集中的節點：
   + activerehashing
   + databases

    如需詳細資訊，請參閱[重新啟動節點](nodes.rebooting.md)。
**Valkey 或 Redis OSS （啟用叢集模式） 參數變更**  
如果您在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上變更下列參數，請遵循後續步驟。  
activerehashing
databases
使用 Redis OSS，您可以重新建立叢集的手動備份。請參閱 [取得手動備份](backups-manual.md)。
刪除叢集。請參閱[刪除叢集](Clusters.html#Delete)。
您可以使用更改的參數群組和備份來植入新的叢集，以還原叢集。請參閱 [從備份還原到新的快取](backups-restoring.md)。
對其他參數進行變更不需要這樣做。



## 修改參數群組 (AWS CLI)
<a name="ParameterGroups.Modifying.CLI"></a>

若要使用 變更參數的值 AWS CLI，請使用命令 `modify-cache-parameter-group`。

**Example**  
使用 Memcached，若要尋找您要變更之參數的名稱和允許值，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)  
下列範本程式碼會為 `myMem14` 參數群組上的兩個參數 (*chunk\$1size* 和 *chunk\$1size\$1growth\$1fact*) 設定值。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache modify-cache-parameter-group \
    --cache-parameter-group-name myMem14 \
    --parameter-name-values \
        ParameterName=chunk_size,ParameterValue=96 \
        ParameterName=chunk_size_growth_fact,ParameterValue=1.5
```
針對 Windows：  

```
aws elasticache modify-cache-parameter-group ^
    --cache-parameter-group-name myMem14 ^
    --parameter-name-values ^
        ParameterName=chunk_size,ParameterValue=96 ^
        ParameterName=chunk_size_growth_fact,ParameterValue=1.5
```
此命令的輸出看起來會與以下內容相似。  

```
{
    "CacheParameterGroupName": "myMem14"
}
```

**Example**  
使用 Valkey 和 Redis OSS，若要尋找您要變更之參數的名稱和允許值，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)  
下列範本程式碼會為 `myredis32-on-30` 參數群組上的兩個參數 (*reserved-memory-percent* 和 *cluster-enabled*) 設定值。我們將 *reserved-memory-percent* 設定為 `30`(30%) *並啟用叢集*，`yes`以便參數群組可與 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （複寫群組） 搭配使用。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache modify-cache-parameter-group \
    --cache-parameter-group-name myredis32-on-30 \
    --parameter-name-values \
        ParameterName=reserved-memory-percent,ParameterValue=30 \
        ParameterName=cluster-enabled,ParameterValue=yes
```
針對 Windows：  

```
aws elasticache modify-cache-parameter-group ^
    --cache-parameter-group-name myredis32-on-30 ^
    --parameter-name-values ^
        ParameterName=reserved-memory-percent,ParameterValue=30 ^
        ParameterName=cluster-enabled,ParameterValue=yes
```
此命令的輸出看起來會與以下內容相似。  

```
{
    "CacheParameterGroupName": "my-redis32-on-30"
}
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-parameter-group.html)。

若要尋找您變更的參數名稱，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

 如果您有 Valkey 或 Redis OSS （停用叢集模式） 叢集，並變更下列參數，則必須重新啟動叢集中的節點：
+ activerehashing
+ databases

 如需詳細資訊，請參閱[重新啟動節點](nodes.rebooting.md)。

**Valkey 或 Redis OSS （啟用叢集模式） 參數變更**  
如果您在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上變更下列參數，請遵循後續步驟。  
activerehashing
databases
建立叢集的手動備份。請參閱 [取得手動備份](backups-manual.md)。
刪除叢集。請參閱[刪除叢集](Clusters.html#Delete)。
您可以使用更改的參數群組和備份來植入新的叢集，以還原叢集。請參閱 [從備份還原到新的快取](backups-restoring.md)。
對其他參數進行變更不需要這樣做。

## 修改參數群組 (ElastiCache API)
<a name="ParameterGroups.Modifying.API"></a>

若要使用 ElastiCache API 變更參數群組的參數值，請使用 `ModifyCacheParameterGroup` 動作。

**Example**  
使用 Memcached，若要尋找您要變更之參數的名稱和允許值，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)  
下列範本程式碼會為 `myMem14` 參數群組上的兩個參數 (*chunk\$1size* 和 *chunk\$1size\$1growth\$1fact*) 設定值。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyCacheParameterGroup
   &CacheParameterGroupName=myMem14
   &ParameterNameValues.member.1.ParameterName=chunk_size
   &ParameterNameValues.member.1.ParameterValue=96
   &ParameterNameValues.member.2.ParameterName=chunk_size_growth_fact
   &ParameterNameValues.member.2.ParameterValue=1.5
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```

**Example**  
使用 Valkey 和 Redis OSS，若要尋找您要變更之參數的名稱和允許值，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)  
下列範本程式碼會為 `myredis32-on-30` 參數群組上的兩個參數 (*reserved-memory-percent* 和 *cluster-enabled*) 設定值。我們將 *reserved-memory-percent* 設定為 `30`(30%) *並啟用叢集*，`yes`以便參數群組可與 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （複寫群組） 搭配使用。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyCacheParameterGroup
   &CacheParameterGroupName=myredis32-on-30
   &ParameterNameValues.member.1.ParameterName=reserved-memory-percent
   &ParameterNameValues.member.1.ParameterValue=30
   &ParameterNameValues.member.2.ParameterName=cluster-enabled
   &ParameterNameValues.member.2.ParameterValue=yes
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html)。

如果您有 Valkey 或 Redis OSS （停用叢集模式） 叢集，並變更下列參數，則必須重新啟動叢集中的節點：
+ activerehashing
+ databases

 如需詳細資訊，請參閱[重新啟動節點](nodes.rebooting.md)。

**Valkey 或 Redis OSS （啟用叢集模式） 參數變更**  
如果您在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上變更下列參數，請遵循後續步驟。  
activerehashing
databases
建立叢集的手動備份。請參閱 [取得手動備份](backups-manual.md)。
刪除叢集。請參閱「[在 ElastiCache 中刪除叢集](Clusters.Delete.md)」。
您可以使用更改的參數群組和備份來植入新的叢集，以還原叢集。請參閱 [從備份還原到新的快取](backups-restoring.md)。
對其他參數進行變更不需要這樣做。

# 刪除 ElastiCache 參數群組
<a name="ParameterGroups.Deleting"></a>

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 刪除自訂參數群組。

若參數群組已和任何叢集相關聯，您便無法刪除參數群組。您也無法刪除任何預設參數群組。

## 刪除參數群組 (主控台)
<a name="ParameterGroups.Deleting.CON"></a>

下列程序說明如何使用 ElastiCache 主控台刪除參數群組。

**使用 ElastiCache 主控台刪除參數群組**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 若要查看所有可用參數群組的清單，請從左側的導覽窗格中，選擇 **Parameter Groups (參數群組)**。

1. 透過選擇參數群組名稱左側的方塊，選擇您希望刪除的參數群組。

   **Delete (刪除)** 按鈕即變成作用中。

1. 選擇 **刪除**。

   **Delete Parameter Group (刪除參數群組)** 確認畫面隨即出現。

1. 若要刪除參數群組，請在 **Delete Parameter Groups (刪除參數群組)** 確認畫面上，選擇 **Delete (刪除)**。

   若要保留參數群組，請選擇 **Cancel (取消)**。

## 刪除參數群組 (AWS CLI)
<a name="ParameterGroups.Deleting.CLI"></a>

若要使用 刪除參數群組 AWS CLI，請使用命令 `delete-cache-parameter-group`。針對要刪除的參數群組，以 `--cache-parameter-group-name` 指定的參數群組不能有任何與其相關聯的叢集，也不能是預設參數群組。

以下範本程式碼會刪除 *myMem14* 參數群組。

**Example**  
若為 Linux、macOS 或 Unix：  

```
aws elasticache delete-cache-parameter-group \
    --cache-parameter-group-name myRed28
```
針對 Windows：  

```
aws elasticache delete-cache-parameter-group ^
    --cache-parameter-group-name myRed28
```

如需詳細資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-parameter-group.html)。

## 刪除參數群組 (ElastiCache API)
<a name="ParameterGroups.Deleting.API"></a>

若要使用 ElastiCache API 刪除參數群組，請使用 `DeleteCacheParameterGroup` 動作。針對要刪除的參數群組，以 `CacheParameterGroupName` 指定的參數群組不能有任何與其相關聯的叢集，也不能是預設參數群組。

**Example**  
使用 Memcached 時，下列範例程式碼會刪除 *myMem14* 參數群組。  

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

**Example**  
以下範本程式碼會刪除 *myRed28* 參數群組。  

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

如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheParameterGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheParameterGroup.html)。

# 引擎特定參數
<a name="ParameterGroups.Engine"></a>

**Valkey 和 Redis OSS**

大多數 Valkey 8 參數都與 Redis OSS 7.1 參數相容。Valkey 7.2 參數與 Redis OSS 7 參數相同。

如果您未指定 Valkey 或 Redis OSS 叢集的參數群組，則會使用適合您引擎版本的預設參數群組。您無法變更預設參數群組中任何參數的值。但是，只要可條件式修改參數的值在兩個參數群組中都是相同的，您便可以建立自訂參數群組並隨時將其指派給您的叢集。如需詳細資訊，請參閱[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。

**Topics**
+ [Valkey 和 Redis OSS 參數](#ParameterGroups.Redis)
+ [Memcached 專用參數](#ParameterGroups.Memcached)

## Valkey 和 Redis OSS 參數
<a name="ParameterGroups.Redis"></a>

**Topics**
+ [Valkey 8.2 參數變更](#ParameterGroups.Valkey.8.2)
+ [Valkey 8.1 參數變更](#ParameterGroups.Valkey.8.1)
+ [Valkey 8.0 參數變更](#ParameterGroups.Valkey.8)
+ [Valkey 7.2 和 Redis OSS 7 參數變更](#ParameterGroups.Redis.7)
+ [Redis OSS 6.x 參數變更](#ParameterGroups.Redis.6-x)
+ [Redis OSS 5.0.3 參數變更](#ParameterGroups.Redis.5-0-3)
+ [Redis OSS 5.0.0 參數變更](#ParameterGroups.Redis.5.0)
+ [Redis OSS 4.0.10 參數變更](#ParameterGroups.Redis.4-0-10)
+ [Redis OSS 3.2.10 參數變更](#ParameterGroups.Redis.3-2-10)
+ [Redis OSS 3.2.6 參數變更](#ParameterGroups.Redis.3-2-6)
+ [Redis OSS 3.2.4 參數變更](#ParameterGroups.Redis.3-2-4)
+ [Redis OSS 2.8.24 （增強版） 新增參數](#ParameterGroups.Redis.2-8-24)
+ [Redis OSS 2.8.23 （增強版） 新增參數](#ParameterGroups.Redis.2-8-23)
+ [Redis OSS 2.8.22 （增強版） 新增參數](#ParameterGroups.Redis.2-8-22)
+ [Redis OSS 2.8.21 新增參數](#ParameterGroups.Redis.2-8-21)
+ [Redis OSS 2.8.19 新增參數](#ParameterGroups.Redis.2-8-19)
+ [Redis OSS 2.8.6 新增參數](#ParameterGroups.Redis.2-8-6)
+ [Redis OSS 2.6.13 參數](#ParameterGroups.Redis.2-6-13)
+ [Redis OSS 節點類型特定參數](#ParameterGroups.Redis.NodeSpecific)

### Valkey 8.2 參數變更
<a name="ParameterGroups.Valkey.8.2"></a>

**參數群組系列：**valkey8

**注意**  
Valkey 8.2 參數變更不適用於 Valkey 8.1
Valkey 8.0 及更高版本參數群組與 Redis OSS 7.2.4 不相容。
在 Valkey 8.2 中，下列命令不適用於無伺服器快取：`commandlog`、`commandlog get`、`commandlog len`、 `commandlog help`和 `commandlog reset.` 


**Valkey 8.2 中的新參數群組**  

| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
| search-fanout-target-mode （在 8.2 中新增） | 預設：用戶端 類型：字串 可修改：是 變更生效：立即 |   search-fanout-target-mode 組態參數可控制搜尋查詢在 Valkey 叢集環境中跨節點分佈的方式。此設定接受兩個值：「輸送量」，其透過隨機在所有叢集節點間分配搜尋查詢來最佳化最大輸送量，無論用戶端類型或 READONLY 狀態為何，以及「用戶端」，其透過僅將非 REDONLY 用戶端路由至主要節點、僅將複本連線上的 READONLY 用戶端路由至複本節點，以及在所有節點間隨機轉接主要連線上的 READONLY 用戶端。 預設行為是「用戶端」模式，表示系統會遵守用戶端連線類型和 READONLY 狀態，以進行查詢路由決策。將輸送量模式用於需要最大叢集資源使用率的大量搜尋工作負載，以及您想要維持讀取/寫入分離和遵守應用程式層級 READONLY 連線模式的用戶端模式。 | 
| search-default-timeout-ms |  預設：50000 允許的值：1 到 60000 類型：整數 可修改：是 變更生效：立即 | 預設的 Valkey 搜尋查詢逾時 （以毫秒為單位）。 | 
| search-enable-partial-results | 預設：是 允許的值：是、否 類型：布林值 可修改：是 變更生效：立即 | 設定 Valkey 搜尋的查詢失敗行為。啟用時，如果一個或多個碎片發生逾時，搜尋查詢將傳回部分結果。停用時，任何碎片逾時都會導致整個搜尋查詢失敗並傳回錯誤。 | 

### Valkey 8.1 參數變更
<a name="ParameterGroups.Valkey.8.1"></a>

**參數群組系列：**valkey8

**注意**  
Valkey 8.1 參數變更不適用於 Valkey 8.0
Valkey 8.0 及更高版本參數群組與 Redis OSS 7.2.4 不相容。
在 Valkey 8.1 中，下列命令不適用於無伺服器快取：`commandlog`、`commandlog get`、`commandlog help`、 `commandlog len`和 `commandlog reset.` 


**Valkey 8.1 中的新參數群組**  

| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  commandlog-large-request-max-len （在 8.1 中新增）  |  預設：1048576 類型：整數 可修改：是 變更生效：立即  |  要由 Valkey 命令日誌功能記錄之請求的大小上限，以位元組為單位。  | 
|  commandlog-large-request-max-len （在 8.1 中新增）  |  預設：128 允許的值：0-1024 類型：整數 可修改：是 變更生效：立即  |  請求的 Valkey 命令日誌長度上限。  | 
|  commandlog-reply-larger-than （在 8.1 中新增）  |  預設：1048576 類型：整數 可修改：是 變更生效：立即  |  由 Valkey 命令日誌功能記錄回應的大小上限，以位元組為單位。  | 
|  commandlog-large-reply-max-len （在 8.1 中新增）  |  預設：128 允許的值：0-1024 類型：整數 可修改：是 變更生效：立即  |  回應的 Valkey 命令日誌長度上限。  | 

### Valkey 8.0 參數變更
<a name="ParameterGroups.Valkey.8"></a>

**參數群組系列：**valkey8

**注意**  
Redis OSS 7.2.4 與 Valkey 8 及更高版本參數群組不相容。


**Valkey 8.0 中的特定參數變更**  

| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  repl-backlog-size  |  預設：10485760 類型：整數 可修改：是 變更生效：立即  |  主要節點待處理項目緩衝區的大小 (位元組)。待處理項目會用於記錄主要節點資料的更新。當僅供讀取複本連線至主要節點時，它會嘗試執行部分同步 (psync)，其中會套用來自待處理項目的資料來跟上主要節點的進度。如果 psync 失敗，則需要完整同步。 此參數的最小值為 16384。 注意：從 Redis OSS 2.8.22 開始，此參數適用於主要叢集和僅供讀取複本。  | 
|  maxmemory-samples  |  預設：3 允許的值：1 到 64 類型：整數 可修改：是 變更生效：立即  |  針對使用時間最遠 (least-recently-used, LRU) 及存活時間 (TTL) 計算，此參數表示要檢查鍵的樣本大小。根據預設，Redis OSS 會選擇 3 個金鑰，並使用最近最少使用的金鑰。  | 


**Valkey 8.0 中的新參數群組**  

| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  extended-redis-compatibility  |  允許的值：是、否 預設：是 類型：布林值 可修改：是 變更生效：立即生效  |  延伸 Redis OSS 相容性模式可讓 Valkey 假名成為 Redis OSS 7.2。只有在工具或用戶端發生問題時，才啟用此選項。 面向客戶的影響： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html)  | 


**已移除 Valkey 8.0 中的參數群組**  

| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  lazyfree-lazy-eviction  |  允許的值：是、否 預設：否 類型：布林值 可修改：是 變更生效：立即生效  |  在移出時執行非同步刪除。  | 
|  lazyfree-lazy-expire  |  允許的值：是、否 預設：否 類型：布林值 可修改：是 變更生效：立即生效  |  在過期鍵上執行非同步刪除。  | 
|  lazyfree-lazy-server-del  |  允許的值：是、否 預設：否 類型：布林值 可修改：是 變更生效：立即生效  |  針對更新數值的命令執行非同步刪除。  | 
|  lazyfree-lazy-user-del  |  預設：否 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。  |   當值設定為是時，DEL 命令的作用與 UNLINK 相同。  | 
|  replica-lazy-flush  |  預設：是 類型：布林值 可修改：否 先前的名稱：slave-lazy-flush  |  在複本同步期間執行非同步 flushDB。  | 

### Valkey 7.2 和 Redis OSS 7 參數變更
<a name="ParameterGroups.Redis.7"></a>

**參數群組系列：**valkey7

Valkey 7.2 預設參數群組如下所示：
+ `default.valkey7` – 針對 Valkey （停用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。
+ `default.valkey7.cluster.on` – 針對 Valkey （啟用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。

**參數群組系列：**redis7

Redis OSS 7 預設參數群組如下所示：
+ `default.redis7` – 針對 Redis OSS （停用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。
+ `default.redis7.cluster.on` – 針對 Redis OSS （啟用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。

**特定參數變更**

在 Redis OSS 7 中新增的參數如下所示。Valkey 7.2 也支援這些參數。


|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| cluster-allow-pubsubshard-when-down |  允許的值：`yes`、`no` 預設：`yes` 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 當預設值為 yes 時，只要叢集認定自身擁有槽，就會允許節點在叢集處於停用狀態時提供 pubsub 碎片流量。  | 
| cluster-preferred-endpoint-type |  允許的值：`ip`、`tls-dynamic` 預設：`tls-dynamic` 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 此值可控制針對 MOVED/ASHING 要求傳回的端點，以及 `CLUSTER SLOTS` 和 `CLUSTER SHARDS` 的端點欄位。當該值設定為 ip 時，節點會公告其 IP 地址。當值設定為 tls-dynamic 時，節點會在啟用傳輸中加密時公告主機名稱或 IP 地址。  | 
| latency-tracking |  允許的值：`yes`、`no` 預設：`no` 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 設定為 yes 時，會追蹤每個命令的延遲情況，並可透過 `INFO` 延遲統計資料命令匯出百分位數分佈，同時透過 `LATENCY` 命令匯出累積延遲分佈 (長條圖)。  | 
| hash-max-listpack-entries |  允許的值：`0+` 預設：`512` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 要壓縮資料集的雜湊項目數目上限。  | 
| hash-max-listpack-value |  允許的值：`0+` 預設：`64` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 最大雜湊項目的臨界值，以便壓縮資料集。  | 
| zset-max-listpack-entries |  允許的值：`0+` 預設：`128` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 要壓縮資料集的雜湊有序集項目數目上限。  | 
| zset-max-listpack-value |  允許的值：`0+` 預設：`64` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 要壓縮資料集的雜湊有序集項目數目上限。  | 

Redis OSS 7 中變更的參數如下所示。


|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| activerehashing |  可修改：`no`。在 Redis OSS 7 中，預設會隱藏並啟用此參數。為了將其停用，您需要建立一個[支援案例](https://console.aws.amazon.com/support/home)。  | 「可修改」先前為「是」。  | 

在 Redis OSS 7 中移除的參數如下所示。


|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| hash-max-ziplist-entries |  允許的值：`0+` 預設：`512` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 使用 `listpack` 而非 `ziplist` 來表示小雜湊編碼  | 
| hash-max-ziplist-value |  允許的值：`0+` 預設：`64` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 使用 `listpack` 而非 `ziplist` 來表示小雜湊編碼  | 
| zset-max-ziplist-entries |  允許的值：`0+` 預設：`128` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 使用 `listpack` 而非 `ziplist` 來表示小雜湊編碼。  | 
| zset-max-ziplist-value |  允許的值：`0+` 預設：`64` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 使用 `listpack` 而非 `ziplist` 來表示小雜湊編碼。  | 
| list-max-ziplist-size |  允許的值： 預設：`-2` 類型：整數 可修改：是 變更生效：直接套用至叢集中所有節點。 | 每個內部清單節點允許的項目數量。  | 

### Redis OSS 6.x 參數變更
<a name="ParameterGroups.Redis.6-x"></a>

**參數群組系列：**redis6.x

Redis OSS 6.x 預設參數群組如下所示：
+ `default.redis6.x` – 將此參數群組或從中衍生的群組用於 Valkey 或 Redis OSS （停用叢集模式） 叢集和複寫群組。
+ `default.redis6.x.cluster.on` – 將此參數群組或從中衍生的群組用於 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組。

**注意**  
 在 Redis OSS 引擎 6.2 版中，當引進 r6gd 節點系列以與 搭配使用時[ElastiCache 中的資料分層](data-tiering.md)，r6gd 節點類型僅支援 *noeviction*、*volatile-lru* 和 *allkeys-lru* max-memory 政策。

如需詳細資訊，請參閱[適用於 Redis OSS 的 ElastiCache 6.2 版 （增強版）](engine-versions.md#redis-version-6.2)及[適用於 Redis OSS 的 ElastiCache 6.0 版 （增強版）](engine-versions.md#redis-version-6.0)。

在 Redis OSS 6.x 中新增的參數如下所示。


|  詳細資訊 |  Description  | 
| --- | --- | 
| acl-pubsub-default (added in 6.2) |  允許的值：`resetchannels`、`allchannels` 預設：`allchannels` 類型：字串 可修改：是 變更生效：與叢集相關聯的現有 Redis OSS 使用者將繼續擁有現有的許可。更新使用者或重新啟動叢集以更新現有的 Redis OSS 使用者。 | 部署到此叢集的 ACL 使用者的預設發佈訂閱頻道許可。  | 
| cluster-allow-reads-when-down (added in 6.0) |  預設：否 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 設定為是時，即使節點無法達到基本人數，Redis OSS （啟用叢集模式） 複寫群組仍會繼續處理讀取命令。 當設定為預設值 no 時，複寫群組會拒絕所有命令。如果您使用的叢集少於三個節點群組，或者您的應用程式可以安全處理過時的讀取作業，建議您將此值設定為 yes。  | 
| tracking-table-max-keys (added in 6.0) |  預設值：1,000,000 類型：數字 可修改：是 變更生效：直接套用至叢集中所有節點。 | 為了協助用戶端快取，Redis OSS 支援追蹤哪些用戶端已存取哪些金鑰。 追蹤的索引鍵有所修改時，會傳送失效訊息給所有用戶端，通知他們快取的值不再有效。此值可讓您指定此資料表的上限。超過此參數值之後，會隨機傳送失效訊息給用戶端。系統應調校此值以限制記憶體使用量，同時仍會追蹤足夠的索引鍵。索引鍵也會在記憶體不足的情況下失效。  | 
| acllog-max-len (added in 6.0) |  預設：128 類型：數字 可修改：是 變更生效：直接套用至叢集中所有節點。 | 此值對應至 ACL 日誌中的項目數上限。  | 
| active-expire-effort (added in 6.0) |  預設：1 類型：數字 可修改：是 變更生效：直接套用至叢集中所有節點。 | Redis OSS 會刪除超過兩個機制存活時間的金鑰。一種機制是系統會存取一個索引鍵，並發現其過期。另一種機制則是定期任務對索引鍵進行取樣，而導致超過存留時間的索引鍵過期。此參數定義 Redis OSS 用來使定期任務中的項目過期的工作量。 預設值 1 會嘗試避免有超過 10% 的過期索引鍵仍存在於記憶體中。也會嘗試避免佔用總記憶體的 25% 以上以及為系統增加延遲。您最多可以將此值增加 10，以增加使索引鍵過期花費的工作量。缺點是 CPU 會較高，且延遲也可能更高。除非您發現記憶體使用量很高，且可以容忍 CPU 使用率的增加，否則建議您使用值 1。  | 
| lazyfree-lazy-user-del (added in 6.0) |  預設：否 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 將值設定為 yes 時，`DEL` 命令的作用與 `UNLINK` 相同。  | 

在 Redis OSS 6.x 中移除的參數如下所示。


|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| lua-replicate-commands |  允許值：是/否 預設：是 類型：布林值 可修改：是 變更生效：立即生效 | 是否一律在 Lua 指令碼中啟用 Lua 效果複寫  | 

### Redis OSS 5.0.3 參數變更
<a name="ParameterGroups.Redis.5-0-3"></a>

**參數群組系列：**redis5.0

Redis OSS 5.0 預設參數群組
+ `default.redis5.0` – 針對 Valkey 或 Redis OSS （停用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。
+ `default.redis5.0.cluster.on` – 將此參數群組或衍生的參數群組用於 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組。


**在 Redis OSS 5.0.3 中新增的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| rename-commands |  預設：none 類型：字串 可修改：是 變更生效：直接套用至叢集中所有節點。 | 重新命名 Redis OSS 命令的空間分隔清單。下列限制命令清單可供重新命名使用： `APPEND AUTH BITCOUNT BITFIELD BITOP BITPOS BLPOP BRPOP BRPOPLPUSH BZPOPMIN BZPOPMAX CLIENT CLUSTER COMMAND DBSIZE DECR DECRBY DEL DISCARD DUMP ECHO EVAL EVALSHA EXEC EXISTS EXPIRE EXPIREAT FLUSHALL FLUSHDB GEOADD GEOHASH GEOPOS GEODIST GEORADIUS GEORADIUSBYMEMBER GET GETBIT GETRANGE GETSET HDEL HEXISTS HGET HGETALL HINCRBY HINCRBYFLOAT HKEYS HLEN HMGET HMSET HSET HSETNX HSTRLEN HVALS INCR INCRBY INCRBYFLOAT INFO KEYS LASTSAVE LINDEX LINSERT LLEN LPOP LPUSH LPUSHX LRANGE LREM LSET LTRIM MEMORY MGET MONITOR MOVE MSET MSETNX MULTI OBJECT PERSIST PEXPIRE PEXPIREAT PFADD PFCOUNT PFMERGE PING PSETEX PSUBSCRIBE PUBSUB PTTL PUBLISH PUNSUBSCRIBE RANDOMKEY READONLY READWRITE RENAME RENAMENX RESTORE ROLE RPOP RPOPLPUSH RPUSH RPUSHX SADD SCARD SCRIPT SDIFF SDIFFSTORE SELECT SET SETBIT SETEX SETNX SETRANGE SINTER SINTERSTORE SISMEMBER SLOWLOG SMEMBERS SMOVE SORT SPOP SRANDMEMBER SREM STRLEN SUBSCRIBE SUNION SUNIONSTORE SWAPDB TIME TOUCH TTL TYPE UNSUBSCRIBE UNLINK UNWATCH WAIT WATCH ZADD ZCARD ZCOUNT ZINCRBY ZINTERSTORE ZLEXCOUNT ZPOPMAX ZPOPMIN ZRANGE ZRANGEBYLEX ZREVRANGEBYLEX ZRANGEBYSCORE ZRANK ZREM ZREMRANGEBYLEX ZREMRANGEBYRANK ZREMRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZREVRANK ZSCORE ZUNIONSTORE SCAN SSCAN HSCAN ZSCAN XINFO XADD XTRIM XDEL XRANGE XREVRANGE XLEN XREAD XGROUP XREADGROUP XACK XCLAIM XPENDING GEORADIUS_RO GEORADIUSBYMEMBER_RO LOLWUT XSETID SUBSTR`  | 

如需詳細資訊，請參閱[適用於 Redis OSS 的 ElastiCache 5.0.6 版 （增強版）](engine-versions.md#redis-version-5-0.6)。

### Redis OSS 5.0.0 參數變更
<a name="ParameterGroups.Redis.5.0"></a>

**參數群組系列：**redis5.0

Redis OSS 5.0 預設參數群組
+ `default.redis5.0` – 針對 Valkey 或 Redis OSS （停用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。
+ `default.redis5.0.cluster.on` – 將此參數群組或衍生的參數群組用於 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組。


**在 Redis OSS 5.0 中新增的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| stream-node-max-bytes |  允許的值：0\$1 預設：4096 類型：整數 可修改：是 變更生效：立即生效 | 串流資料結構是節點基數樹狀結構，它會在內部編碼多個項目。使用這個組態可指定基數樹狀結構中單一節點的最大大小 (以位元組為單位)。如果設為 0，則節點的大小沒有限制。 | 
| stream-node-max-entries |  允許的值：0\$1 預設：100 類型：整數 可修改：是 變更生效：立即生效 | 串流資料結構是節點基數樹狀結構，它會在內部編碼多個項目。使用此組態來指定在附加新串流項目時，切換至新節點之前，單一節點可包含的最大項目數。如果設為 0，則樹狀結構節點中的項目數沒有限制  | 
| active-defrag-max-scan-fields |  允許值：1 到 1000000 預設：1000 類型：整數 可修改：是 變更生效：立即生效 | 將從主字典掃描處理的 set/hash/zset/list 欄位的最大數量  | 
| lua-replicate-commands |  允許值：是/否 預設：是 類型：布林值 可修改：是 變更生效：立即生效 | 是否一律在 Lua 指令碼中啟用 Lua 效果複寫  | 
| replica-ignore-maxmemory |  預設：是 類型：布林值 可修改：否  | 不從主要複本獨立移出項目，決定複本是否要忽略 maxmemory 設定  | 

Redis OSS 已重新命名引擎 5.0 版中的多個參數，以回應社群意見回饋。如需詳細資訊，請參閱 [Redis OSS 5 中的最新消息？](https://aws.amazon.com/redis/Whats_New_Redis5/)。下表列出新名稱以及它們與舊版的對應方式。


**在 Redis OSS 5.0 中重新命名的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| replica-lazy-flush |  預設：是 類型：布林值 可修改：否 先前的名稱：slave-lazy-flush  | 在複本同步期間執行非同步 flushDB。 | 
| client-output-buffer-limit-replica-hard-limit | 預設：如需數值，請參閱 [Redis OSS 節點類型特定參數](#ParameterGroups.Redis.NodeSpecific) 類型：整數 可修改：否 先前的名稱：client-output-buffer-limit-slave-hard-limit | 對於 Redis OSS 僅供讀取複本：如果用戶端的輸出緩衝區達到指定的位元組數，用戶端將會中斷連線。 | 
| client-output-buffer-limit-replica-soft-limit | 預設：如需數值，請參閱 [Redis OSS 節點類型特定參數](#ParameterGroups.Redis.NodeSpecific) 類型：整數 可修改：否 先前的名稱：client-output-buffer-limit-slave-soft-limit | 對於 Redis OSS 僅供讀取複本：如果用戶端的輸出緩衝區達到指定的位元組數，用戶端將會中斷連線，但前提是此條件仍適用於 client-output-buffer-limit-replica-soft-seconds。 | 
| client-output-buffer-limit-replica-soft-seconds | 預設：60 類型：整數 可修改：否 先前的名稱：client-output-buffer-limit-slave-soft-seconds  | 對於 Redis OSS 僅供讀取複本：如果用戶端的輸出緩衝區停留在client-output-buffer-limit-replica-soft-limit位元組超過此秒數，用戶端將會中斷連線。 | 
| replica-allow-chaining | 預設：否 類型：字串 可修改：否 先前的名稱：slave-allow-chaining | 決定 Redis OSS 中的僅供讀取複本是否可以擁有自己的僅供讀取複本。 | 
| min-replicas-to-write | 預設：0 類型：整數 可修改：是 先前的名稱：min-slaves-to-write 變更生效：立即 | 為了讓主要節點接受來自用戶端的寫入，所需要的最低可用僅供讀取複本數量。若可用複本數低於此數字，屆時主要節點便會不再接受寫入請求。 若此參數或 min-replicas-max-lag 為 0，則即使沒有任何可用複本，主要節點也一律會接受寫入請求。 | 
| min-replicas-max-lag  | 預設：10 類型：整數 可修改：是 先前的名稱：min-slaves-max-lag 變更生效：立即 | 秒數，在此期間主要節點必須從僅供讀取複本接收 ping 請求。若經過此秒數而主要節點仍未接收到 ping，便會將複本視為無法使用。若可用複本數低於 min-replicas-to-write，屆時主要節點便會停止接受寫入。 若此參數或 min-replicas-to-write 為 0，則即使沒有任何可用複本，主要節點也一律會接受寫入請求。 | 
| close-on-replica-write  | 預設：是 類型：布林值 可修改：是 先前的名稱：close-on-slave-write 變更生效：立即 | 若啟用，則會中斷嘗試寫入僅供讀取複本的用戶端連線。 | 


**在 Redis OSS 5.0 中移除的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| repl-timeout |  預設：60 可修改：否  | 此參數在此版本中無法使用。 | 

### Redis OSS 4.0.10 參數變更
<a name="ParameterGroups.Redis.4-0-10"></a>

**參數群組系列：**redis4.0

Redis OSS 4.0.x 預設參數群組
+ `default.redis4.0` – 針對 Valkey 或 Redis OSS （停用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。
+ `default.redis4.0.cluster.on` – 針對 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組，使用此參數群組或衍生的參數群組。


**在 Redis OSS 4.0.10 中變更的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| maxmemory-policy |  允許值：`allkeys-lru`、`volatile-lru`、**allkeys-lfu**、**volatile-lfu**、`allkeys-random`、`volatile-random`、`volatile-ttl` 及 `noeviction` 預設：volatile-lru 類型：字串 可修改：是 變更生效：立即生效 | 2.6.13 版中新增了 maxmemory-policy。在版本 4.0.10 中，新增了兩個新的允許值：allkeys-lfu 會使用近似的 LFU 移出任何鍵，而 volatile-lfu 會在具有過期集的鍵中使用近似的 LFU 來移出。在 6.2 版本中，當導入 r6gd 節點系列以與資料分層搭配使用時，r6gd 節點類型僅支援 noeviction、volatile-lru 和 allkeys-lru 最大記憶體政策。 | 


**Redis OSS 4.0.10 中新增的參數**  

|  Name  |  詳細資訊 |  Description  | 
| --- |--- |--- |
| **非同步刪除參數** | 
| --- |
| lazyfree-lazy-eviction |  允許值：是/否 預設：否 類型：布林值 可修改：是 變更生效：立即生效 | Performs an asynchronous delete on evictions. | 
| lazyfree-lazy-expire |  允許值：是/否 預設：否 類型：布林值 可修改：是 變更生效：立即生效 | Performs an asynchronous delete on expired keys. | 
| lazyfree-lazy-server-del |  允許值：是/否 預設：否 類型：布林值 可修改：是 變更生效：立即生效 | Performs an asynchronous delete for commands which update values. | 
| slave-lazy-flush |  允許值：N/A 預設：否 類型：布林值 可修改：否 Changes take place: N/A | Performs an asynchronous flushDB during slave sync. | 
| **LFU 參數** | 
| --- |
| lfu-log-factor |  允許值：任何 > 0 的整數 預設：10 類型：整數 可修改：是 變更生效：立即生效 | Set the log factor, which determines the number of key hits to saturate the key counter. | 
| lfu-decay-time |  允許值：任何整數 預設：1 類型：整數 可修改：是 變更生效：立即生效 | The amount of time in minutes to decrement the key counter. | 
| **作用中磁碟重組參數** | 
| --- |
| activedefrag |  允許值：是/否 預設：否 類型：布林值 可修改：是 變更生效：立即生效 | 啟用主動重組。 在 Valkey 和 Redis OSS 7.0 版及更高版本中，無論此設定為何，AWS可能會在操作上有需要時自動執行重組。  | 
| active-defrag-ignore-bytes |  允許值：10485760-104857600 預設：104857600 類型：整數 可修改：是 變更生效：立即生效 | Minimum amount of fragmentation waste to start active defrag. | 
| active-defrag-threshold-lower |  允許值：1 到 100 預設：10 類型：整數 可修改：是 變更生效：立即生效 | Minimum percentage of fragmentation to start active defrag. | 
| active-defrag-threshold-upper |  允許值：1 到 100 預設：100 類型：整數 可修改：是 變更生效：立即生效 | Maximum percentage of fragmentation at which we use maximum effort. | 
| active-defrag-cycle-min |  允許值：1 到 75 預設：25 類型：整數 可修改：是 變更生效：立即生效 | Minimal effort for defrag in CPU percentage. | 
| active-defrag-cycle-max |  允許值：1 到 75 預設：75 類型：整數 可修改：是 變更生效：立即生效 | Maximal effort for defrag in CPU percentage. | 
| **用戶端輸出緩衝區參數** | 
| --- |
| client-query-buffer-limit |  允許值：1048576-1073741824 預設：1073741824 類型：整數 可修改：是 變更生效：立即生效 | Max size of a single client query buffer. | 
| proto-max-bulk-len |  允許值：1048576-536870912 預設：536870912 類型：整數 可修改：是 變更生效：立即生效 | Max size of a single element request. | 

### Redis OSS 3.2.10 參數變更
<a name="ParameterGroups.Redis.3-2-10"></a>

**參數群組系列：**redis3.2

ElastiCache for Redis OSS 3.2.10 不支援其他參數。

### Redis OSS 3.2.6 參數變更
<a name="ParameterGroups.Redis.3-2-6"></a>

**參數群組系列：**redis3.2

對於 Redis OSS 3.2.6，不支援其他參數。

### Redis OSS 3.2.4 參數變更
<a name="ParameterGroups.Redis.3-2-4"></a>

**參數群組系列：**redis3.2

從 Redis OSS 3.2.4 開始，有兩個預設參數群組。
+ `default.redis3.2` – 執行 Redis OSS 3.2.4 時，如果您想要建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，但仍使用 Redis OSS 3.2.4 的其他功能，請指定此參數群組或衍生的參數群組。
+ `default.redis3.2.cluster.on` – 當您想要建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，請指定此參數群組或從中衍生的參數群組。

**Topics**
+ [Redis OSS 3.2.4 的新參數](#ParameterGroups.Redis.3-2-4.New)
+ [Redis OSS 3.2.4 中變更的參數 （增強版）](#ParameterGroups.Redis.3-2-4.Changed)

#### Redis OSS 3.2.4 的新參數
<a name="ParameterGroups.Redis.3-2-4.New"></a>

**參數群組系列：**redis3.2

對於 Redis OSS 3.2.4，支援下列其他參數。


****  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| list-max-ziplist-size | 預設值：-2 類型：整數 可修改：否  | 清單會以特別的方式進行編碼以節省空間。每個內部清單節點允許的項目數量可透過固定的大小上限或元素數量上限來指定。針對固定的大小上限，請使用 -5 到 -1，表示：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html) | 
| list-compress-depth | 預設：0 類型：整數 可修改：是 變更生效：立即 | 清單也可以進行壓縮。壓縮深度是來自清單每一端的快速清單 (quicklist) 壓縮清單 (ziplist) 節點數量，這些節點會從壓縮中排除。清單的前端和尾端一律不會進行壓縮，以進行快速的推送及彈出操作。設定如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html) | 
| cluster-enabled |  預設：否/是 \$1 類型：字串 可修改：否 | 指出這是叢集模式 （是） 中的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組，還是非叢集模式 （否） 中的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。叢集模式中的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組可以將資料分割至最多 500 個節點群組。 \$1 Redis OSS 3.2.*x* 有兩個預設參數群組。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html). | 
| cluster-require-full-coverage | 預設：否 類型：布林值 可修改：是 變更生效：立即 |  設為 時`yes`，如果叢集模式中的 Valkey 或 Redis OSS （啟用叢集模式） 節點偵測到至少有一個未覆蓋的雜湊槽 （沒有可用的節點提供服務），則會停止接受查詢。這會在叢集部分關閉時導致叢集無法使用。它會在所有位置再次受到涵蓋時重新恢復可用狀態。 但是，有時候您可能會希望一部分正常運作的叢集針對仍然涵蓋的 keyspace 部分繼續接受查詢。若要這麼做，只需將 `cluster-require-full-coverage` 選項設為 `no` 即可。 | 
| hll-sparse-max-bytes | 預設：3000 類型：整數 可修改：是 變更生效：立即 | HyperLogLog 疏鬆表示位元組限制。限制包含 16 位元組的標頭。當使用疏鬆表示的 HyperLogLog 超過此限制時，便會轉換成密集表示。 不建議使用大於 16000 的值，因為屆時密集表示可以更有效率的使用記憶體。 我們建議使用約 3000 的值，來在有效率的使用空間進行編碼的同時不會導致 PFADD 的速度降低太多 (使用疏鬆編碼時)。若 CPU 不在考量範圍內，但空間為考量的項目之一，且資料集是由許多基數介於 0 到 15000 範圍間的 HyperLogLog 組成時，則可以將此值提升到約 10000。 | 
| reserved-memory-percent | 預設：25 類型：整數 可修改：是 變更生效：立即 |  為非資料用途預留的節點記憶體百分比。根據預設，Redis OSS 資料使用量會持續增加，直到用完節點的所有記憶體為止。若發生此情況，則節點效能很可能會因過度進行記憶體分頁而降低。透過保留記憶體，您可以將一些可用的記憶體留給非 Redis OSS 用途，以協助減少分頁數量。 此參數專屬於 ElastiCache，不屬於標準 Redis OSS 分佈。 如需詳細資訊，請參閱`reserved-memory`及[管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)。 | 

#### Redis OSS 3.2.4 中變更的參數 （增強版）
<a name="ParameterGroups.Redis.3-2-4.Changed"></a>

**參數群組系列：**redis3.2

針對 Redis OSS 3.2.4，已變更下列參數。


****  

|  Name  |  詳細資訊 |  變更  | 
| --- | --- | --- | 
| activerehashing | 可修改：如果參數群組未與任何叢集相關聯，則為是。否則為否。 | 「可修改」先前為「否」。 | 
| databases | 可修改：如果參數群組未與任何叢集相關聯，則為是。否則為否。 | 「可修改」先前為「否」。 | 
| appendonly | 預設：關閉 可修改：否 | 如果您想要從較早的 Redis OSS 版本升級，您必須先`appendonly`關閉 。 | 
| appendfsync | 預設：關閉 可修改：否 | 如果您想要從較早的 Redis OSS 版本升級，您必須先`appendfsync`關閉 。 | 
| repl-timeout | 預設：60 可修改：否 | 現已變更為無法修改，且其預設為 60。 | 
| tcp-keepalive | 預設：300 | 先前預設為 0。 | 
| list-max-ziplist-entries |  | 參數已無法使用。 | 
| list-max-ziplist-value |  | 參數已無法使用。 | 

### Redis OSS 2.8.24 （增強版） 新增參數
<a name="ParameterGroups.Redis.2-8-24"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.24，不支援其他參數。

### Redis OSS 2.8.23 （增強版） 新增參數
<a name="ParameterGroups.Redis.2-8-23"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.23，支援以下額外參數。


****  

|  Name  |  詳細資訊 |  Description  | 
| --- | --- | --- | 
| close-on-slave-write  | 預設：是 類型：字串 (是/否) 可修改：是 變更生效：立即 | 若啟用，則會中斷嘗試寫入僅供讀取複本的用戶端連線。 | 

#### close-on-slave-write 的運作方式
<a name="w2aac24c16c30c49c15c39b9"></a>

Amazon ElastiCache 引進了 `close-on-slave-write` 參數，在將僅供讀取複本提升為主節點，導致主節點和僅供讀取複本節點交換角色時，可讓您進一步控制叢集回應的方式。

![\[圖片：close-on-replica-write，一切都運作正常\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-close-on-slave-write-01.png)


若僅供讀取複本叢集因啟用異地同步備份的複寫群組容錯移轉之外的任何原因提升為主要節點，則用戶端會繼續嘗試寫入端點 A。因為端點 A 已成為僅供讀取複本的端點，因此寫入會失敗。這是 ElastiCache 引入之前 Redis OSS 的行為，`close-on-replica-write`以及停用 時的行為`close-on-replica-write`。

![\[圖片：close-on-slave-write，寫入失敗\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-close-on-slave-write-02.png)


啟用 `close-on-replica-write` 時，每一次當用戶端嘗試寫入僅供讀取複本時，便會關閉用戶端對叢集的連線。您的應用程式邏輯應偵測中斷連線、檢查 DNS 表，並重新連線至主要端點 (此時已是端點 B)。

![\[圖片：close-on-slave-write，寫入新的主要叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-close-on-slave-write-03.png)


#### 可能需停用 close-on-replica-write 的情況
<a name="w2aac24c16c30c49c15c39c11"></a>

若停用 `close-on-replica-write` 對導致寫入失敗的叢集，為什麼還要停用 `close-on-replica-write`？

如先前所提及，啟用 `close-on-replica-write` 時，每一次當用戶端嘗試寫入僅供讀取複本時，便會關閉用戶端對叢集的連線。建立與節點的新連線需要時間。因此，寫入複本請求所導致的中斷連線及重新連線也會影響透過相同連線處理的讀取請求延遲。此效果會持續存在，直到建立新連線為止。若您的應用程式特別需要進行大量讀取或是對延遲非常敏感，您可能會偏好將用戶端保持連線，以避免降低讀取效能。

### Redis OSS 2.8.22 （增強版） 新增參數
<a name="ParameterGroups.Redis.2-8-22"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.22，不支援其他參數。

**重要**  
從 Redis OSS 2.8.22 版開始， `repl-backlog-size`適用於主要叢集和複本叢集。
從 Redis OSS 2.8.22 版開始，不支援 `repl-timeout` 參數。若發生變更，ElastiCache 會使用預設值 (60 秒) 覆寫，如同我們對 `appendonly` 執行的作業。

以下參數已不再受到支援。
+ *appendonly*
+ *appendfsync*
+ *repl-timeout*

### Redis OSS 2.8.21 新增參數
<a name="ParameterGroups.Redis.2-8-21"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.21，不支援其他參數。

### Redis OSS 2.8.19 新增參數
<a name="ParameterGroups.Redis.2-8-19"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.19，不支援其他參數。

### Redis OSS 2.8.6 新增參數
<a name="ParameterGroups.Redis.2-8-6"></a>

**參數群組系列：**redis2.8

對於 Redis OSS 2.8.6，支援下列其他參數。


****  

|  Name  |  詳細資訊  |  Description  | 
| --- | --- | --- | 
| min-slaves-max-lag  | 預設：10 類型：整數 可修改：是 變更生效：立即 | 秒數，在此期間主要節點必須從僅供讀取複本接收 ping 請求。若經過此秒數而主要節點仍未接收到 ping，便會將複本視為無法使用。若可用複本數低於 min-slaves-to-write，屆時主要節點便會停止接受寫入。 若此參數或 min-slaves-to-write 為 0，則即使沒有任何可用複本，主要節點也一律會接受寫入請求。 | 
| min-slaves-to-write | 預設：0 類型：整數 可修改：是 變更生效：立即 | 為了讓主要節點接受來自用戶端的寫入，所需要的最低可用僅供讀取複本數量。若可用複本數低於此數字，屆時主要節點便會不再接受寫入請求。 若此參數或 min-slaves-max-lag 為 0，則即使沒有任何可用複本，主要節點也一律會接受寫入請求。 | 
| notify-keyspace-events | 預設：(空字串) 類型：字串 可修改：是 變更生效：立即 | Redis OSS 可通知用戶端的金鑰空間事件類型。每個事件類型都是以單一字母表示： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html) 您可以任意組合這些事件類型。例如，*AKE* 表示 Redis OSS 可以發佈所有事件類型的通知。 請不要使用任何以上列出字元以外的字元。嘗試執行此作業會導致錯誤訊息。 根據預設，此參數會設為空字串，表示停用 keyspace 事件通知。 | 
| repl-backlog-size | 預設：1048576 類型：整數 可修改：是 變更生效：立即 | 主要節點待處理項目緩衝區的大小 (位元組)。待處理項目會用於記錄主要節點資料的更新。當僅供讀取複本連線到主要節點時，它會嘗試執行部分同步 (`psync`)，套用來自待處理項目的資料來更新至主要節點目前的情況。若 `psync` 失敗，便需要完整同步。 此參數的最小值為 16384。  從 Redis OSS 2.8.22 開始，此參數適用於主要叢集和僅供讀取複本。  | 
| repl-backlog-ttl | 預設：3600 類型：整數 可修改：是 變更生效：立即 | 主要節點保留待處理項目緩衝區的秒數。從最後一次複本節點中斷連線的時間開始，待處理項目中的資料會保持不變，直到 `repl-backlog-ttl` 過期。若複本在此期間內並未連線到主要節點，主要節點便會釋放待處理項目緩衝區。當複本最後重新連線時，便需要與主要節點執行完整同步。 若將此參數設為 0，便永遠不會釋放待處理項目緩衝區。 | 
| repl-timeout | 預設：60 類型：整數 可修改：是 變更生效：立即 | 表示以下項目的逾時期間 (秒數)：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html) | 

### Redis OSS 2.6.13 參數
<a name="ParameterGroups.Redis.2-6-13"></a>

**參數群組系列：**redis2.6

Redis OSS 2.6.13 是 ElastiCache 支援的第一個 Redis OSS 版本。下表顯示 ElastiCache 支援的 Redis OSS 2.6.13 參數。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/ParameterGroups.Engine.html)

**注意**  
如果您未指定 Redis OSS 2.6.13 叢集的參數群組，則會使用預設參數群組 (`default.redis2.6`)。您無法變更預設參數群組中任何參數的值。但是，您永遠可以建立自訂參數群組並隨時將其指派給您的叢集。

### Redis OSS 節點類型特定參數
<a name="ParameterGroups.Redis.NodeSpecific"></a>

雖然大多數的參數都只有單一值，有些參數則可能會根據所使用的節點類型而有不同的值。下表顯示每個節點類型 `maxmemory`、`client-output-buffer-limit-slave-hard-limit` 及 `client-output-buffer-limit-slave-soft-limit` 參數的預設值。`maxmemory` 的值為您在節點上可以用於資料及其他用途的位元組上限。如需可用指標的詳細資訊，請參閱[可用記憶體](https://aws.amazon.com/premiumsupport/knowledge-center/available-memory-elasticache-redis-node/)。

**注意**  
`maxmemory` 參數無法修改。


|  Node type  | Maxmemory  | Client-output-buffer-limit-slave-hard-limit | Client-output-buffer-limit-slave-soft-limit | 
| --- | --- | --- | --- | 
| cache.t1.micro | 142606336 | 14260633 | 14260633 | 
| cache.t2.micro | 581959680 | 58195968 | 58195968 | 
| cache.t2.small | 1665138688 | 166513868 | 166513868 | 
| cache.t2.medium | 3461349376 | 346134937 | 346134937 | 
| cache.t3.micro | 536870912 | 53687091 | 53687091 | 
| cache.t3.small | 1471026299 | 147102629 | 147102629 | 
| cache.t3.medium | 3317862236 | 331786223 | 331786223 | 
| cache.t4g.micro | 536870912 | 53687091 | 53687091 | 
| cache.t4g.small | 1471026299 | 147102629 | 147102629 | 
| cache.t4g.medium | 3317862236 | 331786223 | 331786223 | 
| cache.m1.small | 943718400 | 94371840 | 94371840 | 
| cache.m1.medium | 3093299200 | 309329920 | 309329920 | 
| cache.m1.large | 7025459200 | 702545920 | 702545920 | 
| cache.m1.xlarge | 14889779200 | 1488977920 | 1488977920 | 
| cache.m2.xlarge | 17091788800 | 1709178880 | 1709178880 | 
| cache.m2.2xlarge | 35022438400 | 3502243840 | 3502243840 | 
| cache.m2.4xlarge | 70883737600 | 7088373760 | 7088373760 | 
| cache.m3.medium | 2988441600 | 309329920 | 309329920 | 
| cache.m3.large | 6501171200 | 650117120 | 650117120 | 
| cache.m3.xlarge | 14260633600 | 1426063360 | 1426063360 | 
| cache.m3.2xlarge | 29989273600 | 2998927360 | 2998927360 | 
| cache.m4.large | 6892593152 | 689259315 | 689259315 | 
| cache.m4.xlarge | 15328501760 | 1532850176 | 1532850176 | 
| cache.m4.2xlarge | 31889126359 | 3188912636 | 3188912636 | 
| cache.m4.4xlarge | 65257290629 | 6525729063 | 6525729063 | 
| cache.m4.10xlarge | 166047614239 | 16604761424 | 16604761424 | 
| cache.m5.large | 6854542746 | 685454275  | 685454275 | 
| cache.m5.xlarge | 13891921715 | 1389192172 | 1389192172 | 
| cache.m5.2xlarge | 27966669210 | 2796666921 | 2796666921 | 
| cache.m5.4xlarge | 56116178125 | 5611617812 | 5611617812 | 
| cache.m5.12xlarge | 168715971994 | 16871597199 | 16871597199 | 
| cache.m5.24xlarge | 337500562842 | 33750056284 | 33750056284 | 
| cache.m6g.large | 6854542746 | 685454275 | 685454275 | 
| cache.m6g.xlarge | 13891921715 | 1389192172 | 1389192172 | 
| cache.m6g.2xlarge | 27966669210 | 2796666921 | 2796666921 | 
| cache.m6g.4xlarge | 56116178125 | 5611617812 | 5611617812 | 
| cache.m6g.8xlarge | 111325552312 | 11132555231 | 11132555231 | 
| cache.m6g.12xlarge | 168715971994 | 16871597199 | 16871597199 | 
| cache.m6g.16xlarge | 225000375228 | 22500037523 | 22500037523 | 
| cache.c1.xlarge | 6501171200 | 650117120 | 650117120 | 
| cache.r3.large | 14470348800 | 1468006400 | 1468006400 | 
| cache.r3.xlarge | 30513561600 | 3040870400 | 3040870400 | 
| cache.r3.2xlarge | 62495129600 | 6081740800 | 6081740800 | 
| cache.r3.4xlarge | 126458265600 | 12268339200 | 12268339200 | 
| cache.r3.8xlarge | 254384537600 | 24536678400 | 24536678400 | 
| cache.r4.large | 13201781556 | 1320178155 | 1320178155 | 
| cache.r4.xlarge | 26898228839 | 2689822883 | 2689822883 | 
| cache.r4.2xlarge | 54197537997 | 5419753799 | 5419753799 | 
| cache.r4.4xlarge | 108858546586 | 10885854658 | 10885854658 | 
| cache.r4.8xlarge | 218255432090 | 21825543209 | 21825543209 | 
| cache.r4.16xlarge | 437021573120 | 43702157312 | 43702157312 | 
| cache.r5.large | 14037181030 | 1403718103 | 1403718103 | 
| cache.r5.xlarge | 28261849702 | 2826184970 | 2826184970 | 
| cache.r5.2xlarge | 56711183565 | 5671118356 | 5671118356 | 
| cache.r5.4xlarge | 113609865216 | 11360986522 | 11360986522 | 
| cache.r5.12xlarge | 341206346547 | 34120634655 | 34120634655 | 
| cache.r5.24xlarge | 682485973811 | 68248597381 | 68248597381 | 
| cache.r6g.large | 14037181030 | 1403718103 | 1403718103 | 
| cache.r6g.xlarge | 28261849702 | 2826184970 | 2826184970 | 
| cache.r6g.2xlarge | 56711183565 | 5671118356 | 5671118356 | 
| cache.r6g.4xlarge | 113609865216 | 11360986522 | 11360986522 | 
| cache.r6g.8xlarge | 225000375228 | 22500037523 | 22500037523 | 
| cache.r6g.12xlarge | 341206346547 | 34120634655 | 34120634655 | 
| cache.r6g.16xlarge | 450000750456 | 45000075046 | 45000075046 | 
| cache.r6gd.xlarge | 28261849702 | 2826184970 | 2826184970 | 
| cache.r6gd.2xlarge | 56711183565 | 5671118356 | 5671118356 | 
| cache.r6g.4xlarge | 113609865216 | 11360986522 | 11360986522 | 
| cache.r6g.8xlarge | 225000375228 | 22500037523 | 22500037523 | 
| cache.r6gd.12xlarge | 341206346547 | 34120634655 | 34120634655 | 
| cache.r6gd.16xlarge | 450000750456 | 45000075046 | 45000075046 | 
| cache.r7g.large | 14037181030 | 1403718103 | 1403718103 | 
| cache.r7g.xlarge | 28261849702 | 2826184970 | 2826184970 | 
| cache.r7g.2xlarge | 56711183565 | 5671118356 | 5671118356 | 
| cache.r7g.4xlarge | 113609865216 | 11360986522 | 11360986522 | 
| cache.r7g.8xlarge | 225000375228 | 22500037523 | 22500037523 | 
| cache.r7g.12xlarge | 341206346547 | 34120634655 | 34120634655 | 
| cache.r7g.16xlarge | 450000750456 | 45000075046 | 45000075046 | 
| cache.m7g.large | 6854542746 | 685454275 | 685454275 | 
| cache.m7g.xlarge | 13891921715 | 1389192172 | 1389192172 | 
| cache.m7g.2xlarge | 27966669210 | 2796666921 | 2796666921 | 
| cache.m7g.4xlarge | 56116178125 | 5611617812 | 5611617812 | 
| cache.m7g.8xlarge | 111325552312 | 11132555231 | 11132555231 | 
| cache.m7g.12xlarge | 168715971994 | 16871597199 | 16871597199 | 
| cache.m7g.16xlarge | 225000375228 | 22500037523 | 22500037523 | 
| cache.c7gn.large | 3317862236 | 1403718103 | 1403718103 | 
| cache.c7gn.xlarge | 6854542746 | 2826184970 | 2826184970 | 
| cache.c7gn.2xlarge | 13891921715 | 5671118356 | 5671118356 | 
| cache.c7gn.4xlarge | 27966669210 | 11360986522 | 11360986522 | 
| cache.c7gn.8xlarge | 56116178125 | 22500037523 | 22500037523 | 
| cache.c7gn.12xlarge | 84357985997 | 34120634655 | 34120634655 | 
| cache.c7gn.16xlarge | 113609865216 | 45000075046 | 45000075046 | 

**注意**  
最新一代的執行個體類型預設已建立在 Amazon Virtual Private Cloud (VPC) 中。  
T1 執行個體不支援多個可用區。  
T1 和 T2 執行個體不支援 Redis OSS AOF。  
Redis OSS 2.8.22 版`appendonly`及更新版本`appendfsync`不支援 Redis OSS 組態變數和 。

## Memcached 專用參數
<a name="ParameterGroups.Memcached"></a>

**Memcached**

若您沒有為 Memcached 叢集指定參數群組，則會使用適合您引擎版本的預設參數群組。您無法變更預設參數群組中任何參數的值。但是，您可以建立自訂參數群組並隨時將其指派給您的叢集。如需詳細資訊，請參閱[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。

**Topics**
+ [Memcached 1.6.17 的變更](#ParameterGroups.Memcached.1.6.17)
+ [Memcached 1.6.6 版新增參數](#ParameterGroups.Memcached.1-6-6)
+ [Memcached 1.5.10 參數變更](#ParameterGroups.Memcached.1-5-10)
+ [Memcached 1.4.34 版新增參數](#ParameterGroups.Memcached.1-4-34)
+ [Memcached 1.4.33 版新增參數](#ParameterGroups.Memcached.1-4-33)
+ [Memcached 1.4.24 版新增參數](#ParameterGroups.Memcached.1-4-24)
+ [Memcached 1.4.14 版新增參數](#ParameterGroups.Memcached.1-4-14)
+ [Memcached 1.4.5 版支援參數](#ParameterGroups.Memcached.1-4-5)
+ [Memcached 連線額外負荷](#ParameterGroups.Memcached.Overhead)
+ [Memcached 節點類型專用參數](#ParameterGroups.Memcached.NodeSpecific)

### Memcached 1.6.17 的變更
<a name="ParameterGroups.Memcached.1.6.17"></a>

從 Memcached 1.6.17 開始，我們不再支援下列管理命令：`lru_crawler`、`lru` 和 `slabs`。這些變更生效後，您就無法在執行期透過命令啟用/停用 `lru_crawler`。請透過修改自訂參數群組來啟用/停用 `lru_crawler`。

### Memcached 1.6.6 版新增參數
<a name="ParameterGroups.Memcached.1-6-6"></a>

針對 Memcached 1.6.6，沒有支援任何額外參數。

**參數群組系列：**memcached1.6

### Memcached 1.5.10 參數變更
<a name="ParameterGroups.Memcached.1-5-10"></a>

針對 Memcached 1.5.10 版，支援以下額外參數。

**參數群組系列：**memcached1.5


| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
| no\$1modern  | 預設：1 類型：布林值 可修改：是 允許的值：0、1 變更生效：啟動時  |  用於停用 `slab_reassign`、`lru_maintainer_thread`、 `lru_segmented`和`maxconns_fast` 命令的別名。 使用 Memcached 1.5 及更高版本時， `no_modern`也會將 hash\$1algorithm 設定為 `jenkins`。 此外，使用 Memcached 1.5.10 時， `inline_ascii_reponse` 是由 參數 控制`parallelly`。這表示如果 `no_modern`已停用，`inline_ascii_reponse`則會停用 。從 Memcached 引擎 1.5.16 之後， `inline_ascii_response` 參數不再適用，因此`no_modern`啟用或停用不會影響 `inline_ascii_reponse`。 如果 `no_modern`已停用，則會`maxconns_fast`啟用 `slab_reassign`、`lru_segmented`、 `lru_maintainer_thread`和 。由於 `slab_automove`和 `hash_algorithm` 參數不是 SWITCH 參數，因此其設定是以參數群組中的組態為基礎。 如果您想要停用`no_modern`並還原至 `modern`，您必須設定自訂參數群組來停用此參數，然後重新啟動，這些變更才會生效。  自 2021 年 8 月 20 日起，此參數的預設組態值已從 0 變更為 1。更新後的預設值將由 2021 年 8 月 20 日之後每個區域的新 ElastiCache 使用者自動取得。2021 年 8 月 20 日之前區域中的現有 ElastiCache 使用者需要手動修改其自訂參數群組，才能取得這項新變更。   | 
| inline\$1ascii\$1resp  | 預設：0 類型：布林值 可修改：是 允許的值：0、1 變更生效：啟動時  |  在項目內存放來自 `VALUE` 回應的數字，使用最多 24 個位元組。針對 ASCII `get`、`faster` 設定小量的減速。 | 

針對 Memcached 1.5.10，會移除以下參數。


| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
| expirezero\$1does\$1not\$1evict  | 預設：0 類型：布林值 可修改：是 允許的值：0、1 變更生效：啟動時  |  此版本中已不再支援。 | 
| modern  | 預設：1 類型：布林值 可修改：是 (如果設為 `no_modern`，則需要重新啟動) 允許的值：0、1 變更生效：啟動時  |  此版本中已不再支援。從此版本開始，每次啟動或重新啟動時，`no-modern` 預設會啟用。 | 

### Memcached 1.4.34 版新增參數
<a name="ParameterGroups.Memcached.1-4-34"></a>

針對 Memcached 1.4.34，沒有支援任何額外參數。

**參數群組系列：**memcached1.4

### Memcached 1.4.33 版新增參數
<a name="ParameterGroups.Memcached.1-4-33"></a>

針對 Memcached 1.4.33 版，支援以下額外參數。

**參數群組系列：**memcached1.4


| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  modern  | 預設：啟用 類型：布林值 可修改：是 變更生效：啟動時  |  多種功能的別名。啟用 `modern` 等同於開啟以下命令，並使用 murmur3 雜湊演算法：`slab_reassign`、`slab_automove`、`lru_crawler`、`lru_maintainer`、`maxconns_fast` 及 `hash_algorithm=murmur3`。 | 
|  watch  | 預設：啟用 類型：布林值 可修改：是 變更生效：立即 若使用者到達其 `watcher_logbuf_size` 與 `worker_logbuf_size` 限制，則日誌可能會遭到卸除。  |  日誌擷取、移出或突變。例如，當使用者開啟 `watch` 時，他們會在 `get`、`set`、`delete` 或 `update` 發生時看到日誌。 | 
|  idle\$1timeout  | 預設：0 (停用) 類型：整數 可修改：是 變更生效：啟動時  |  在詢問關閉前允許用戶端閒置的最低秒數。數值範圍：0 到 86400。 | 
|  track\$1sizes  | 預設：停用 類型：布林值 可修改：是 變更生效：啟動時  |  顯示每個 Slab 群組使用的大小。 啟用 `track_sizes` 可讓您執行 `stats sizes`，而無須執行 `stats sizes_enable`。 | 
|  watcher\$1logbuf\$1size  | 預設：256 (KB) 類型：整數 可修改：是 變更生效：啟動時  |  `watch` 命令會開啟 Memcached 的串流日誌。但是，`watch` 可能會在移出率、突變率或擷取率過高，足以導致日誌緩衝區填滿時卸除日誌。在這種情況下，使用者可增加緩衝區大小來減少遺失日誌的機率。 | 
|  worker\$1logbuf\$1size  | 預設：64 (KB) 類型：整數 可修改：是 變更生效：啟動時  |  `watch` 命令會開啟 Memcached 的串流日誌。但是，`watch` 可能會在移出率、突變率或擷取率過高，足以導致日誌緩衝區填滿時卸除日誌。在這種情況下，使用者可增加緩衝區大小來減少遺失日誌的機率。 | 
|  slab\$1chunk\$1max  | 預設：524288 (位元組)  類型：整數 可修改：是 變更生效：啟動時  |  指定 Slab 的大小上限。設定較小的 Slab 大小以更有效率地使用記憶體。大於 `slab_chunk_max` 的項目會分割成多個 Slab。 | 
|  lru\$1crawler metadump [all\$11\$12\$13] | 預設：停用  類型：布林值 可修改：是 變更生效：立即  |  若啟用 lru\$1crawler，則此命令會傾印所有鍵。 `all\|1\|2\|3` - 所有 Slab，或是指定特定的 Slab 編號。 | 

### Memcached 1.4.24 版新增參數
<a name="ParameterGroups.Memcached.1-4-24"></a>

針對 Memcached 1.4.24 版，支援以下額外參數。

**參數群組系列：**memcached1.4


| Name | 詳細資訊 | Description | 
| --- | --- | --- | 
|  disable\$1flush\$1all  | 預設：0 (停用) 類型：布林值 可修改：是 變更生效：啟動時  |  新增參數 (`-F`) 來停用 flush\$1all。在您永遠不想在生產執行個體上執行完整排清時很有用。 數值：0、1 (當此值為 0 時，使用者便可執行 `flush_all`)。 | 
|  hash\$1algorithm  | 預設：jenkins 類型：字串 可修改：是 變更生效：啟動時  | 要使用的雜湊演算法。允許值：murmur3 及 jenkins。 | 
|  lru\$1crawler  | 預設：0 (停用) 類型：布林值 可修改：是 變更生效：重新啟動後  您可以於執行時間從命令列暫時啟用 `lru_crawler`。如需詳細資訊，請參閱「描述」欄。   |  清理已過期的項目 Slab 類別。此為在背景執行且影響程度低的程序。目前需要使用手動命令初始化網路爬取。 若要暫時啟用，請在命令列執行 `lru_crawler enable`。 `lru_crawler 1,3,5` 會網路爬取 Slab 類別 1、3 及 5，尋找過期的項目，並新增到釋放清單。 數值：0、1  在命令列啟用 `lru_crawler` 會啟用網路爬取程式，直到在命令列停用或下一次重新開機為止。若要永久啟用，您必須修改參數值。如需詳細資訊，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。   | 
|  lru\$1maintainer  | 預設：0 (停用) 類型：布林值 可修改：是 變更生效：啟動時  |  背景執行緒，可在到達容量時於 LRU 間隨機移動項目。數值：0、1。 | 
|  expirezero\$1does\$1not\$1evict  | 預設：0 (停用) 類型：布林值 可修改：是 變更生效：啟動時  |  搭配 `lru_maintainer` 使用時，讓過期時間為 0 的項目無法移出。  這可能會填滿其他可移出項目的可用記憶體。  可設為略過 `lru_maintainer`。 | 

### Memcached 1.4.14 版新增參數
<a name="ParameterGroups.Memcached.1-4-14"></a>

針對 Memcached 1.4.14 版，支援以下額外參數。

**參數群組系列：**memcached1.4


**Memcached 1.4.14 版中新增的參數**  

|  Name  |  詳細資訊  |  Description  | 
| --- | --- | --- | 
| config\$1max | 預設：16 類型：整數 可修改：否 | ElastiCache 組態項目的數量上限。 | 
| config\$1size\$1max | 預設：65536 類型：整數 可修改：否 | 組態項目的大小上限，單位為位元組。 | 
| hashpower\$1init | 預設：16 類型：整數 可修改：否 | ElastiCache 雜湊表的初始大小，以 2 的乘冪表示。預設為 16 (2^16)，或 65536 個鍵。 | 
| maxconns\$1fast | 預設值：0 (false) 類型：布林值 可修改：是 變更生效：重新啟動後 | 變更到達連線數量上限時處理新連線請求的方式。若將此參數設為 0 (零)，則新的連線會新增到待處理項目佇列，並等待其他連線關閉。若將此參數設為 1，ElastiCache 會將錯誤傳送至用戶端，並立即關閉連線。 | 
| slab\$1automove | 預設：0 類型：整數 可修改：是 變更生效：重新啟動後 | 調整 Slab 自動移動演算法：若將此參數設為 0 (零)，則停用自動移動演算法。若設為 1，ElastiCache 會採取緩慢、保守的方式來自動移動 Slab。若設為 2，ElastiCache 會在發生移出時積極移動 Slab。(除非用於測試用途，否則不建議此模式。) | 
| slab\$1reassign | 預設值：0 (false) 類型：布林值 可修改：是 變更生效：重新啟動後 | 啟用或停用 Slab 指派。若將此參數設為 1，您可以使用 "slabs reassign" 命令來手動重新指派記憶體。 | 

### Memcached 1.4.5 版支援參數
<a name="ParameterGroups.Memcached.1-4-5"></a>

**參數群組系列：**memcached1.4

針對 Memcached 1.4.5 版，支援以下參數。


**Memcached 1.4.5 版中新增的參數**  

|  Name  |  詳細資訊  |  Description  | 
| --- | --- | --- | 
| backlog\$1queue\$1limit | 預設：1024 類型：整數 可修改：否 | 待處理佇列限制。 | 
| binding\$1protocol | 預設：自動 類型：字串 可修改：是 變更生效：重新啟動後 | 繫結通訊協定。允許值：`ascii` 及 `auto`。 如需修改 `binding_protocol` 值的指導，請參閱[修改 ElastiCache 參數群組](ParameterGroups.Modifying.md)。 | 
| cas\$1disabled | 預設值：0 (false) 類型：布林值 可修改：是 變更生效：重新啟動後 | 若為 1 (True)，則會停用檢查及設定 (CAS) 操作，並且存放的項目會比啟用 CAS 時少使用 8 個位元組。 | 
| chunk\$1size | 預設：48 類型：整數 可修改：是 變更生效：重新啟動後 | 配置給最小項目鍵、值及標記的空間數量下限 (位元組)。 | 
| chunk\$1size\$1growth\$1factor | 預設：1.25 類型：浮動 可修改：是 變更生效：重新啟動後 | 成長因數，控制每個後續 Memcached 區塊的大小。每個區塊都會比前一個區塊大 chunk\$1size\$1growth\$1factor 倍。 | 
| error\$1on\$1memory\$1exhausted | 預設值：0 (false) 類型：布林值 可修改：是 變更生效：重新啟動後 | 若為 1 (True)，則當沒有記憶體可存放項目時，Memcached 會傳回錯誤而非移出項目。 | 
| large\$1memory\$1pages | 預設值：0 (false) 類型：布林值 可修改：否 | 若為 1 (True)，ElastiCache 會嘗試使用大型記憶體分頁。 | 
| lock\$1down\$1paged\$1memory | 預設值：0 (false) 類型：布林值 可修改：否 | 若為 1 (True)，ElastiCache 會鎖定所有分頁記憶體。 | 
| max\$1item\$1size | 預設：1048576 類型：整數 可修改：是 變更生效：重新啟動後 | 可存放在叢集中的最大項目大小 (位元組)。 | 
| max\$1simultaneous\$1connections | 預設：65000 類型：整數 可修改：否 | 同時連線數量上限。 | 
| maximize\$1core\$1file\$1limit | 預設值：0 (false) 類型：布林值 可修改： 變更生效：重新啟動後 | 若為 1 (True)，ElastiCache 會最大化核心檔案限制。 | 
| memcached\$1connections\$1overhead | 預設：100 類型：整數 可修改：是 變更生效：重新啟動後 | 要為 Memcached 連線及其他雜項額外負荷預留的記憶體數量。如需此參數的相關資訊，請參閱 [Memcached 連線額外負荷](#ParameterGroups.Memcached.Overhead)。 | 
| requests\$1per\$1event | 預設：20 類型：整數 可修改：否 | 指定連線每個事件的請求數上限。此限制為避免資源耗盡的必要項目。 | 

### Memcached 連線額外負荷
<a name="ParameterGroups.Memcached.Overhead"></a>

在每個節點上，可供存放項目的記憶體為該節點可用記憶體的總數 (該值存放在 `max_cache_memory` 參數中)，減去用於連線及其他額外負荷 (該值存放在 `memcached_connections_overhead` 參數中) 所使用的記憶體。例如，`cache.m1.small` 類型的節點具有 1300MB 的 `max_cache_memory`。使用預設 100MB 的 `memcached_connections_overhead` 值，Memcached 程序便會擁有 1200MB，可用於存放項目。

`memcached_connections_overhead` 參數的預設值足以滿足大多數的使用案例。但是，連線額外負荷所需要的配置數量可能會因多項因素而不同，包括請求率、承載大小，以及連線數量。

您可以變更 `memcached_connections_overhead` 的值來更進一步配合您應用程式的需求。例如，增加 `memcached_connections_overhead` 參數的值會減少可用於存放項目的記憶體數量，為連線額外負荷提供更大的緩衝區。減少 `memcached_connections_overhead` 參數的值可讓您擁有更多記憶體來存放項目，但可能會增加切換 (swap) 用量及降低效能。若您察覺切換 (swap) 用量及效能降低，請嘗試增加 `memcached_connections_overhead` 參數的值。

**重要**  
針對 `cache.t1.micro` 節點類型，`memcached_connections_overhead` 的值會透過以下方式決定：  
若您的叢集使用預設參數群組，ElastiCache 會將 `memcached_connections_overhead` 的值設為 13MB。
若您的叢集使用您自行建立的參數群組，您可以將 `memcached_connections_overhead` 的值設為您所選擇的值。

### Memcached 節點類型專用參數
<a name="ParameterGroups.Memcached.NodeSpecific"></a>

雖然大多數的參數都只有單一值，有些參數則可能會根據所使用的節點類型而有不同的值。下表顯示每個節點類型 `max_cache_memory` 及 `num_threads` 參數的預設值。這些參數上的值都無法修改。


|  Node type  | max\$1cache\$1memory (以 MB 為單位)  | num\$1threads  | 
| --- | --- | --- | 
| cache.t1.micro | 213  | 1 | 
| cache.t2.micro | 555 | 1 | 
| cache.t2.small | 1588 | 1 | 
| cache.t2.medium | 3301 | 2 | 
| cache.t3.micro | 512 | 2 | 
| cache.t3.small | 1402 | 2 | 
| cache.t3.medium | 3364 | 2 | 
| cache.t4g.micro | 512 | 2 | 
| cache.t4g.small | 1402 | 2 | 
| cache.t4g.medium | 3164 | 2 | 
| cache.m1.small | 1301 | 1 | 
| cache.m1.medium | 3350 | 1 | 
| cache.m1.large | 7100 | 2 | 
| cache.m1.xlarge | 14600  | 4 | 
| cache.m2.xlarge | 33800 | 2 | 
| cache.m2.2xlarge | 30412 | 4 | 
| cache.m2.4xlarge | 68000  | 16 | 
| cache.m3.medium | 2850 | 1 | 
| cache.m3.large | 6200 | 2 | 
| cache.m3.xlarge | 13600 | 4 | 
| cache.m3.2xlarge | 28600 | 8 | 
| cache.m4.large | 6573 | 2 | 
| cache.m4.xlarge | 11496  | 4 | 
| cache.m4.2xlarge | 30412 | 8 | 
| cache.m4.4xlarge | 62234 | 16 | 
| cache.m4.10xlarge | 158355 | 40 | 
| cache.m5.large | 6537 | 2 | 
| cache.m5.xlarge | 13248 | 4 | 
| cache.m5.2xlarge | 26671 | 8 | 
| cache.m5.4xlarge | 53516 | 16 | 
| cache.m5.12xlarge | 160900 | 48 | 
| cache.m5.24xlarge | 321865  | 96 | 
| cache.m6g.large | 6537 | 2 | 
| cache.m6g.xlarge | 13248 | 4 | 
| cache.m6g.2xlarge | 26671 | 8 | 
| cache.m6g.4xlarge | 53516 | 16 | 
| cache.m6g.8xlarge | 107000 | 32 | 
| cache.m6g.12xlarge | 160900 | 48 | 
| cache.m6g.16xlarge | 214577 | 64 | 
| cache.c1.xlarge | 6600 | 8 | 
| cache.r3.large | 13800 | 2 | 
| cache.r3.xlarge | 29100 | 4 | 
| cache.r3.2xlarge | 59600 | 8 | 
| cache.r3.4xlarge | 120600 | 16 | 
| cache.r3.8xlarge | 120600 | 32 | 
| cache.r4.large | 12590 | 2 | 
| cache.r4.xlarge | 25652 | 4 | 
| cache.r4.2xlarge | 51686 | 8 | 
| cache.r4.4xlarge | 103815 | 16 | 
| cache.r4.8xlarge | 208144 | 32 | 
| cache.r4.16xlarge | 416776 | 64 | 
| cache.r5.large | 13387 | 2 | 
| cache.r5.xlarge | 26953 | 4 | 
| cache.r5.2xlarge | 54084 | 8 | 
| cache.r5.4xlarge | 108347 | 16 | 
| cache.r5.12xlarge | 325400 | 48 | 
| cache.r5.24xlarge | 650869 | 96 | 
| cache.r6g.large | 13387 | 2 | 
| cache.r6g.xlarge | 26953 | 4 | 
| cache.r6g.2xlarge | 54084 | 8 | 
| cache.r6g.4xlarge | 108347 | 16 | 
| cache.r6g.8xlarge | 214577 | 32 | 
| cache.r6g.12xlarge | 325400 | 48 | 
| cache.r6g.16xlarge | 429154 | 64 | 
| cache.c7gn.large | 3164 | 2 | 
| cache.c7gn.xlarge | 6537 | 4 | 
| cache.c7gn.2xlarge | 13248 | 8 | 
| cache.c7gn.4xlarge | 26671 | 16 | 
| cache.c7gn.8xlarge | 53516 | 32 | 
| cache.c7gn.12xlarge | 325400 | 48 | 
| cache.c7gn.16xlarge | 108347 | 64 | 

**注意**  
所有 T2 執行個體都是在 Amazon Virtual Private Cloud (Amazon VPC) 中建立的。