

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

# 扩缩 Valkey 或 Redis OSS（已禁用集群模式）集群
<a name="scaling-redis-classic"></a>

Valkey 或 Redis OSS（已禁用集群模式）集群可以是具有 0 个分片的单节点集群，也可以是具有 1 个分片的多节点集群。单节点集群使用一个节点执行读取和写入。多节点集群始终将 1 个节点作为 read/write 主节点，其中 0 到 5 个只读副本节点。

**Topics**
+ [扩缩 Valkey 或 Redis OSS（已禁用集群模式）集群](#Scaling.RedisStandalone)


**扩缩 Valkey 或 Redis OSS 集群**  

| Action | Valkey 或 Redis OSS（已禁用集群模式） | Valkey 或 Redis OSS（已启用集群模式） | 
| --- | --- | --- | 
|  缩减  |  [从 ElastiCache 集群中移除节点](Clusters.DeleteNode.md)  |  [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)  | 
|  横向扩展  |  [向集群添加节点](Clusters.html#AddNode)  |  [Valkey 或 Redis OSS（已启用集群模式）的离线重新分片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)  | 
|  更改节点类型  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/scaling-redis-classic.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/scaling-redis-classic.html)  |  [通过修改节点类型来在线纵向扩展](redis-cluster-vertical-scaling.md)  | 
|  更改节点组数量  |  在 Valkey 或 Redis OSS（已禁用集群模式）集群上不受支持  |  [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)  | 

**Contents**
+ [扩缩 Valkey 或 Redis OSS（已禁用集群模式）集群](#Scaling.RedisStandalone)
  + [纵向扩展单节点 Valkey 或 Redis OSS 集群](#Scaling.RedisStandalone.ScaleUp)
    + [纵向扩展单节点 Valkey 或 Redis OSS（已禁用集群模式）集群（控制台）](#Scaling.RedisStandalone.ScaleUp.CON)
    + [纵向扩展单节点 Valkey 或 Redis OSS 集群（AWS CLI）](#Scaling.RedisStandalone.ScaleUp.CLI)
    + [扩展单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache](#Scaling.RedisStandalone.ScaleUp.API)
  + [纵向缩减单节点 Valkey 或 Redis OSS 集群](#Scaling.RedisStandalone.ScaleDown)
    + [纵向缩减单节点 Valkey 或 Redis OSS 集群（控制台）](#Scaling.RedisStandalone.ScaleDown.CON)
    + [纵向缩减单节点 Valkey 或 Redis OSS 集群（AWS CLI）](#Scaling.RedisStandalone.ScaleUpDown-Modify.CLI)
    + [缩小单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache](#Scaling.RedisStandalone.ScaleDown.API)

## 扩缩 Valkey 或 Redis OSS（已禁用集群模式）集群
<a name="Scaling.RedisStandalone"></a>

Valkey 或 Redis OSS（已禁用集群模式）节点必须足够大，以包含所有缓存数据及 Valkey 或 Redis OSS 开销。若要更改 Valkey 或 Redis OSS（已禁用集群模式）集群的数据容量，必须纵向扩缩；纵向扩展到更大的节点类型可提高数据容量，纵向缩减到较小的节点类型可降低数据容量。

 ElastiCache 扩展过程旨在尽最大努力保留您的现有数据，并且需要成功复制 Valkey 或 Redis OSS。对于 Valkey 或 Redis OSS（已禁用集群模式）集群，建议留出足够的内存供 Valkey 或 Redis OSS 使用。

您不能跨多个 Valkey 或 Redis OSS（已禁用集群模式）集群对数据进行分区。不过，如果您只需要提高或降低集群的读取容量，则可以创建具有副本节点的 Valkey 或 Redis OSS（已禁用集群模式）集群并添加或删除只读副本。要使用单节点 Valkey 或 Redis OSS 集群作为主集群来创建具有副本节点的 Valkey 或 Redis OSS（已禁用集群模式）集群，请参阅[创建 Valkey（已禁用集群模式）集群（控制台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)。

创建具有副本的集群后，您可以通过添加只读副本来增加读取容量。之后，您可以根据需要通过删除只读副本来降低读取容量。有关更多信息，请参阅 [增加读取容量](Scaling.RedisReplGrps.md#Scaling.RedisReplGrps.ScaleOut)或 [降低读取容量](Scaling.RedisReplGrps.md#Scaling.RedisReplGrps.ScaleIn)。

除了可以扩展读取容量之外，具有副本的 Valkey 或 Redis OSS（已禁用集群模式）集群还具有其他业务优势。有关更多信息，请参阅 [使用复制组时的高可用性](Replication.md)。

**重要**  
如果您的参数组使用 `reserved-memory` 为 Valkey 或 Redis OSS 开销预留内存，则在开始扩展之前，请确保您有一个为新节点类型预留正确内存量的自定义参数组。或者，您可以修改自定义参数组以便使用 `reserved-memory-percent`，并为您的新集群使用该参数组。  
如果您在使用 `reserved-memory-percent`，则这不是必需的。  
有关更多信息，请参阅 [管理 Valkey 和 Redis OSS 的预留内存](redis-memory-management.md)。

**Topics**
+ [纵向扩展单节点 Valkey 或 Redis OSS 集群](#Scaling.RedisStandalone.ScaleUp)
+ [纵向缩减单节点 Valkey 或 Redis OSS 集群](#Scaling.RedisStandalone.ScaleDown)

### 纵向扩展单节点 Valkey 或 Redis OSS 集群
<a name="Scaling.RedisStandalone.ScaleUp"></a>

向上扩展单节点 Valkey 或 Redis OSS 集群时，无论您使用的是 ElastiCache 控制台、还是 API，都要 ElastiCache 执行以下过程。AWS CLI ElastiCache 

1. 在现有集群所在的可用区中启动具有新节点类型的新集群。

1. 将现有集群中的缓存数据复制到新集群。此过程所需的时间取决于您的节点类型以及集群中的数据量。

1. 使用新集群进行读写操作。由于新集群的端点与旧集群的端点相同，因此您不需要更新应用程序中的端点。在更新 DNS 条目时，您会发现主节点的读取和写入出现短暂中断（几秒钟）。

1. ElastiCache 删除旧集群。由于与旧节点之间的连接会断开，您会发现旧节点的读取和写入出现短暂中断（几秒钟）。

**注意**  
对于运行 r6gd 节点类型的集群，您只能在 r6gd 节点系列的节点大小范围内扩缩。

如下表所示，如果您在下一维护时段内安排有引擎升级，则 Valkey 或 Redis OSS 纵向扩展操作将会被阻止。有关维护时段的更多信息，请参阅[管理 ElastiCache 集群维护](maintenance-window.md)。


**阻止的 Valkey 或 Redis OSS 操作**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/scaling-redis-classic.html)

如果有待处理的操作正在阻止您，您可以执行以下操作之一。
+ 通过清除**立即应用**复选框（CLI 使用：`--no-apply-immediately`，API 使用：`ApplyImmediately=false`），将 Valkey 或 Redis OSS 纵向扩展操作安排在下一维护时段内。
+ 等到下一维护时段（或之后）再执行 Valkey 或 Redis OSS 纵向扩展操作。
+ 将 Valkey 或 Redis OSS 引擎升级操作添加到选中了**立即应用**复选框（CLI 使用：`--apply-immediately`，API 使用：`ApplyImmediately=true`）的集群修改中。这将导致立即执行引擎升级，从而取消阻止纵向扩展操作。

您可以使用 ElastiCache 控制台、或 API 扩展单节点 Valkey 或 Redis OSS（已禁用集群模式）集群。AWS CLI ElastiCache 

**重要**  
如果您的参数组使用 `reserved-memory` 为 Valkey 或 Redis OSS 开销预留内存，则在开始扩展之前，请确保您有一个为新节点类型预留正确内存量的自定义参数组。或者，您可以修改自定义参数组以便使用 `reserved-memory-percent`，并为您的新集群使用该参数组。  
如果您在使用 `reserved-memory-percent`，则这不是必需的。  
有关更多信息，请参阅 [管理 Valkey 和 Redis OSS 的预留内存](redis-memory-management.md)。

#### 纵向扩展单节点 Valkey 或 Redis OSS（已禁用集群模式）集群（控制台）
<a name="Scaling.RedisStandalone.ScaleUp.CON"></a>

以下过程介绍如何使用管理控制台扩展单节点 Valkey 或 Redis OSS 集群。 ElastiCache 在此过程中，您的 Valkey 或 Redis OSS 集群将继续处理请求，且停机时间降至最短。

**纵向扩展单节点 Valkey 或 Redis OSS 集群（控制台）**

1. 登录AWS 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 从导航窗格中，选择 **Valkey 或 Redis OSS 集群**。

1. 从集群列表中选择要纵向扩展的集群（必须运行 Valkey 或 Redis OSS 引擎，而不是 Clustered Valkey 或 Redis OSS 引擎）。

1. 选择 **Modify**(修改)。

1. 在 **Modify Cluster** 向导中：

   1. 从 **Node type** 列表中选择您希望扩展到的节点类型。

   1. 如果您在使用 `reserved-memory` 管理内存，请从 **Parameter Group** 列表中，选择为新节点类型预留正确内存量的自定义参数组。

1. 如果您要立即执行纵向扩展过程，请选中 **Apply immediately** 框。如果 **Apply immediately** 框处于未选中状态，则在此集群的下一维护时段内执行纵向扩展过程。

1. 选择 **Modify**(修改)。

   如果您在上一步选择了 **Apply immediately**，则集群的状态将变为 *modifying*。当状态变为 *available* 时，即表示修改完成，您可以开始使用新集群。

#### 纵向扩展单节点 Valkey 或 Redis OSS 集群（AWS CLI）
<a name="Scaling.RedisStandalone.ScaleUp.CLI"></a>

以下过程介绍了如何使用AWS CLI纵向扩展单节点 Valkey 或 Redis OSS 集群。在此过程中，您的 Valkey 或 Redis OSS 集群将继续处理请求，且停机时间降至最短。

**纵向扩展单节点 Valkey 或 Redis OSS 集群（AWS CLI）**

1. 通过运行带有以下参数的AWS CLI`list-allowed-node-type-modifications`命令来确定可以扩展到的节点类型。
   + `--cache-cluster-id`

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --cache-cluster-id my-cache-cluster-id
   ```

   对于 Windows：

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --cache-cluster-id my-cache-cluster-id
   ```

   以上命令的输出类似于此处所示（JSON 格式）。

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
               "cache.t1.small ",
   	    ], 
   
   	}
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html)。

1. 使用AWS CLI`modify-cache-cluster`命令和以下参数修改现有集群，指定要向上扩展的集群以及新的更大的节点类型。
   + `--cache-cluster-id` – 要纵向扩展的集群的名称。
   + `--cache-node-type` – 要扩展集群的新节点类型。此值必须是步骤 1 中由 `list-allowed-node-type-modifications` 命令返回的节点类型之一。
   + `--cache-parameter-group-name` – [可选] 如果您使用 `reserved-memory` 管理集群的预留内存，则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用 `reserved-memory-percent`，则可以忽略此参数。
   + `--apply-immediately` – 使纵向扩展过程立即得到应用。要将纵向扩展流程推迟到此集群的下一维护时段，请使用 `--no-apply-immediately` 参数。

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache modify-cache-cluster \
   	    --cache-cluster-id my-redis-cache-cluster \
   	    --cache-node-type cache.m3.xlarge \
   	    --cache-parameter-group-name redis32-m2-xl \
   	    --apply-immediately
   ```

   对于 Windows：

   ```
   aws elasticache modify-cache-cluster ^
   	    --cache-cluster-id my-redis-cache-cluster ^
   	    --cache-node-type cache.m3.xlarge ^
   	    --cache-parameter-group-name redis32-m2-xl ^
   	    --apply-immediately
   ```

   以上命令的输出类似于此处所示（JSON 格式）。

   ```
   {
   	    "CacheCluster": {
   	        "Engine": "redis", 
   	        "CacheParameterGroup": {
   	            "CacheNodeIdsToReboot": [], 
   	            "CacheParameterGroupName": "default.redis6.x", 
   	            "ParameterApplyStatus": "in-sync"
   	        }, 
   	        "SnapshotRetentionLimit": 1, 
   	        "CacheClusterId": "my-redis-cache-cluster", 
   	        "CacheSecurityGroups": [], 
   	        "NumCacheNodes": 1, 
   	        "SnapshotWindow": "00:00-01:00", 
   	        "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", 
   	        "AutoMinorVersionUpgrade": true, 
   	        "CacheClusterStatus": "modifying", 
   	        "PreferredAvailabilityZone": "us-west-2a", 
   	        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
   	        "CacheSubnetGroupName": "default", 
   	        "EngineVersion": "6.0", 
   	        "PendingModifiedValues": {
   	            "CacheNodeType": "cache.m3.2xlarge"
   	        }, 
   	        "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", 
   	        "CacheNodeType": "cache.m3.medium",
   	         "DataTiering": "disabled"
   	    }
   	}
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

1. 如果您使用了`--apply-immediately`，请使用带有以下参数的AWS CLI`describe-cache-clusters`命令检查新集群的状态。当状态变为 *available* 时，您便可开始使用较大的新集群。
   + `--cache-cluster-id` – 单节点 Valkey 或 Redis OSS 集群的名称。使用此参数可描述特定集群而非所有集群。

   ```
   aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)。

#### 扩展单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache
<a name="Scaling.RedisStandalone.ScaleUp.API"></a>

以下过程介绍如何使用 API 扩展单节点 Valkey 或 Redis OSS 集群。 ElastiCache 在此过程中，您的 Valkey 或 Redis OSS 集群将继续处理请求，且停机时间降至最短。

**向上扩展单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache**

1. 通过使用以下参数运行 ElastiCache API `ListAllowedNodeTypeModifications` 操作来确定可以扩展到的节点类型。
   + `CacheClusterId` – 要纵向扩展的单节点 Valkey 或 Redis OSS 集群的名称。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html)*中的。

1. 使用 `ModifyCacheCluster` ElastiCache API 操作和以下参数修改现有集群，指定要向上扩展的集群和新的更大的节点类型。
   + `CacheClusterId` – 要纵向扩展的集群的名称。
   + `CacheNodeType` – 要通过纵向扩展使集群达到的较大新节点类型。此值必须是上一步中通由 `ListAllowedNodeTypeModifications` 操作返回的节点类型之一。
   + `CacheParameterGroupName` – [可选] 如果您使用 `reserved-memory` 管理集群的预留内存，则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用 `reserved-memory-percent`，则可以忽略此参数。
   + `ApplyImmediately` – 设置为 `true` 可促使立即开始执行纵向扩展过程。要将纵向扩展流程推迟到此集群的下一维护时段，请使用 `ApplyImmediately``=false`。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyCacheCluster
   	   &ApplyImmediately=true
   	   &CacheClusterId=MyRedisCacheCluster
   	   &CacheNodeType=cache.m3.xlarge
   	   &CacheParameterGroupName redis32-m2-xl
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)*中的。

1. 如果您使用了 `ApplyImmediately``=true`，请使用带有以下参数的 ElastiCache API `DescribeCacheClusters` 操作检查新集群的状态。当状态变为 *available* 时，您便可开始使用较大的新集群。
   + `CacheClusterId` – 单节点 Valkey 或 Redis OSS 集群的名称。使用此参数可描述特定集群而非所有集群。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeCacheClusters
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[DescribeCacheClusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html)*中的。

### 纵向缩减单节点 Valkey 或 Redis OSS 集群
<a name="Scaling.RedisStandalone.ScaleDown"></a>

以下部分介绍了如何将单节点 Valkey 或 Redis OSS 集群纵向缩减为较小的节点类型。确保较小的新节点类型足以容纳所有数据和 Valkey 或 Redis OSS 开销，这一点对于新的 Valkey 或 Redis OSS 集群的长期成功至关重要。有关更多信息，请参阅 [确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存](BestPractices.BGSAVE.md)。

**注意**  
对于运行 r6gd 节点类型的集群，您只能在 r6gd 节点系列的节点大小范围内扩缩。

**Topics**
+ [纵向缩减单节点 Valkey 或 Redis OSS 集群（控制台）](#Scaling.RedisStandalone.ScaleDown.CON)
+ [纵向缩减单节点 Valkey 或 Redis OSS 集群（AWS CLI）](#Scaling.RedisStandalone.ScaleUpDown-Modify.CLI)
+ [缩小单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache](#Scaling.RedisStandalone.ScaleDown.API)

#### 纵向缩减单节点 Valkey 或 Redis OSS 集群（控制台）
<a name="Scaling.RedisStandalone.ScaleDown.CON"></a>

以下过程将引导您使用控制台将单节点 Valkey 或 Redis OSS 集群向下扩展到较小的节点类型。 ElastiCache 

**重要**  
如果您的参数组使用 `reserved-memory` 为 Valkey 或 Redis OSS 开销预留内存，则在开始扩展之前，请确保您有一个为新节点类型预留正确内存量的自定义参数组。或者，您可以修改自定义参数组以便使用 `reserved-memory-percent`，并为您的新集群使用该参数组。  
如果您在使用 `reserved-memory-percent`，则这不是必需的。  
有关更多信息，请参阅 [管理 Valkey 和 Redis OSS 的预留内存](redis-memory-management.md)。

**纵向缩减单节点 Valkey 或 Redis OSS 集群（控制台）**

1. 确保较小的节点类型足以满足您的数据和开销需求。

1. 如果您的参数组使用 `reserved-memory` 为 Valkey 或 Redis OSS 开销预留内存，请确保您有一个为新节点类型预留正确内存量的自定义参数组。

   或者，您可以修改自定义参数组以使用 `reserved-memory-percent`。有关更多信息，请参阅 [管理 Valkey 和 Redis OSS 的预留内存](redis-memory-management.md)。

1. 登录AWS 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 从集群列表中，选择要缩减的集群。该集群必须运行 Valkey 或 Redis OSS 引擎，而不是 Clustered Valkey 或 Redis OSS 引擎。

1. 选择 **Modify**(修改)。

1. 在 **Modify Cluster** 向导中：

   1. 从 **Node type (节点类型)** 列表中选择您希望缩减到的节点类型。

   1. 如果您在使用 `reserved-memory` 管理内存，请从 **Parameter Group** 列表中，选择为新节点类型预留正确内存量的自定义参数组。

1. 如果您要立即执行缩减过程，请选中 **Apply immediately (立即应用)** 复选框。如果 **Apply immediately (立即应用)** 复选框处于未选中状态，则在此集群的下一维护时段内执行缩减过程。

1. 选择 **Modify**(修改)。

1. 当集群的状态从 *modifying* 变为 *available* 时，即表示您的集群已扩展为新的节点类型。无需更新应用程序中的终端节点。

#### 纵向缩减单节点 Valkey 或 Redis OSS 集群（AWS CLI）
<a name="Scaling.RedisStandalone.ScaleUpDown-Modify.CLI"></a>

以下过程介绍了如何使用AWS CLI纵向缩减单节点 Valkey 或 Redis OSS 集群。

**纵向缩减单节点 Valkey 或 Redis OSS 集群（AWS CLI）**

1. 通过运行带有以下参数的AWS CLI`list-allowed-node-type-modifications`命令来确定可以缩减到的节点类型。
   + `--cache-cluster-id`

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --cache-cluster-id my-cache-cluster-id
   ```

   对于 Windows：

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --cache-cluster-id my-cache-cluster-id
   ```

   以上命令的输出类似于此处所示（JSON 格式）。

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
               "cache.t1.small ",
   	    ], 
   
   	}
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html)。

1. 使用AWS CLI`modify-cache-cluster`命令和以下参数修改现有集群，指定要向下扩展的集群和新的较小节点类型。
   + `--cache-cluster-id` – 要纵向缩减的集群的名称。
   + `--cache-node-type` – 要扩展集群的新节点类型。此值必须是步骤 1 中由 `list-allowed-node-type-modifications` 命令返回的节点类型之一。
   + `--cache-parameter-group-name` – [可选] 如果您使用 `reserved-memory` 管理集群的预留内存，则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用 `reserved-memory-percent`，则可以忽略此参数。
   + `--apply-immediately` – 促使立即应用缩减流程。要将纵向扩展流程推迟到此集群的下一维护时段，请使用 `--no-apply-immediately` 参数。

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache modify-cache-cluster \
   	    --cache-cluster-id my-redis-cache-cluster \
   	    --cache-node-type cache.m3.xlarge \
   	    --cache-parameter-group-name redis32-m2-xl \
   	    --apply-immediately
   ```

   对于 Windows：

   ```
   aws elasticache modify-cache-cluster ^
   	    --cache-cluster-id my-redis-cache-cluster ^
   	    --cache-node-type cache.m3.xlarge ^
   	    --cache-parameter-group-name redis32-m2-xl ^
   	    --apply-immediately
   ```

   以上命令的输出类似于此处所示（JSON 格式）。

   ```
   {
   	    "CacheCluster": {
   	        "Engine": "redis", 
   	        "CacheParameterGroup": {
   	            "CacheNodeIdsToReboot": [], 
   	            "CacheParameterGroupName": "default.redis6,x", 
   	            "ParameterApplyStatus": "in-sync"
   	        }, 
   	        "SnapshotRetentionLimit": 1, 
   	        "CacheClusterId": "my-redis-cache-cluster", 
   	        "CacheSecurityGroups": [], 
   	        "NumCacheNodes": 1, 
   	        "SnapshotWindow": "00:00-01:00", 
   	        "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", 
   	        "AutoMinorVersionUpgrade": true, 
   	        "CacheClusterStatus": "modifying", 
   	        "PreferredAvailabilityZone": "us-west-2a", 
   	        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
   	        "CacheSubnetGroupName": "default", 
   	        "EngineVersion": "6.0", 
   	        "PendingModifiedValues": {
   	            "CacheNodeType": "cache.m3.2xlarge"
   	        }, 
   	        "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", 
   	        "CacheNodeType": "cache.m3.medium",
   	         "DataTiering": "disabled"
   	    }
   	}
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

1. 如果您使用了`--apply-immediately`，请使用带有以下参数的AWS CLI`describe-cache-clusters`命令检查新集群的状态。当状态变为 *available* 时，您便可开始使用较大的新集群。
   + `--cache-cluster-id` – 单节点 Valkey 或 Redis OSS 集群的名称。使用此参数可描述特定集群而非所有集群。

   ```
   aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster
   ```

   有关更多信息，请参阅 *AWS CLI参考*中的 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)。

#### 缩小单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache
<a name="Scaling.RedisStandalone.ScaleDown.API"></a>

以下过程介绍如何使用 API 向上扩展单节点 Valkey 或 Redis OSS 集群。 ElastiCache 

**缩小单节点 Valkey 或 Redis OSS 集群 (API) ElastiCache**

1. 通过使用以下参数运行 ElastiCache API `ListAllowedNodeTypeModifications` 操作来确定可以缩减到的节点类型。
   + `CacheClusterId` – 要纵向缩减的单节点 Valkey 或 Redis OSS 集群的名称。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html)*中的。

1. 使用 `ModifyCacheCluster` ElastiCache API 操作和以下参数修改现有集群，指定要向上扩展的集群和新的更大的节点类型。
   + `CacheClusterId` – 要纵向缩减的集群的名称。
   + `CacheNodeType` – 要将集群缩减到的较小的新节点类型。此值必须是上一步中通由 `ListAllowedNodeTypeModifications` 操作返回的节点类型之一。
   + `CacheParameterGroupName` – [可选] 如果您使用 `reserved-memory` 管理集群的预留内存，则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用 `reserved-memory-percent`，则可以忽略此参数。
   + `ApplyImmediately` – 设置为 `true` 可促使立即执行缩减过程。要将纵向扩展流程推迟到此集群的下一维护时段，请使用 `ApplyImmediately``=false`。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyCacheCluster
   	   &ApplyImmediately=true
   	   &CacheClusterId=MyRedisCacheCluster
   	   &CacheNodeType=cache.m3.xlarge
   	   &CacheParameterGroupName redis32-m2-xl
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)*中的。

1. 如果您使用了 `ApplyImmediately``=true`，请使用带有以下参数的 ElastiCache API `DescribeCacheClusters` 操作检查新集群的状态。当状态变为 *available* 时，您便可开始使用较大的新集群。
   + `CacheClusterId` – 单节点 Valkey 或 Redis OSS 集群的名称。使用此参数可描述特定集群而非所有集群。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeCacheClusters
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   有关更多信息，请参阅 *Amazon ElastiCache API 参考[DescribeCacheClusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html)*中的。