
# DCS实例规格变更的业务影响
**执行实例规格变更操作，建议在业务低峰期进行。**
业务高峰期（如实例在内存利用率、最大CPU使用率达到90%以上或写入流量过大）变更规格可能会失败，若变更失败，请在业务低峰期再次尝试变更。
在实例规格变更时，可能会存在的影响如下:
#### 实例类型变更须知
表1DCS实例类型变更明细 
| 实例版本              | 支持的实例变更类型                                                                                                                                               | 变更须知及影响                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| Redis 3.0         | 单机实例变更为主备实例                                                                                                                                             | 连接会有秒级中断，大约1分钟左右的只读。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Redis 3.0         | 主备实例变更为Proxy集群实例                                                                                                                                        | 1. 如果Redis 3.0主备实例数据存储在多DB上，或数据存储在非DB0上，不支持变更为Proxy集群；数据必须是只存储在DB0上的主备实例才支持变更为Proxy集群。  2. 连接会中断，5\~30分钟只读。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Memcached         | 单机实例变更为主备实例                                                                                                                                             | 会有秒级业务中断、大约1分钟只读。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Redis 4.0/5.0/6.0 | 主备实例或读写分离实例变更为Proxy集群实例                                                                                                                                 | 1. **实例** **变更为** **Proxy集群** **后，Proxy集群** **默认开启多DB。** 因此需要评估Proxy集群多DB的使用限制和命令使用限制对业务的影响，请参见[proxy集群使用多DB限制](http://support.huaweicloud.com/dcs_faq/dcs-faq-210804001.html)，和[实例受限使用命令](http://support.huaweicloud.com/productdesc-dcs/dcs-pd-200813003.html)。  2. 变更前实例的已用内存必须小于变更后最大内存的70%，否则将不允许变更。查询实例已用内存，请参见[查看和修改DCS实例基本信息](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0312016.html)，查看实例的"已用/可用内存 (MB)"参数。  3. 如果变更前实例的已用内存超过总内存的90%，变更的过程中可能会导致部分key逐出。  4. 变更完成后需要对实例重新[创建告警规则](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190905001.html)。  5. 如果原实例是主备实例，请确保应用中没有直接引用只读IP或只读域名。  6. 请确保您的客户端应用具备重连机制和处理异常的能力，否则在变更规格后有可能需要重启客户端应用。  7. 变更规格过程中会有秒级业务中断、大约1分钟只读，建议在业务低峰时进行变更。   |
| Redis 4.0/5.0/6.0 | Proxy集群实例变更为主备实例或读写分离实例                                                                                                                                 | 1. **实例** **变更为** **Proxy集群** **后，Proxy集群** **默认开启多DB。** 因此需要评估Proxy集群多DB的使用限制和命令使用限制对业务的影响，请参见[proxy集群使用多DB限制](http://support.huaweicloud.com/dcs_faq/dcs-faq-210804001.html)，和[实例受限使用命令](http://support.huaweicloud.com/productdesc-dcs/dcs-pd-200813003.html)。  2. 变更前实例的已用内存必须小于变更后最大内存的70%，否则将不允许变更。查询实例已用内存，请参见[查看和修改DCS实例基本信息](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0312016.html)，查看实例的"已用/可用内存 (MB)"参数。  3. 如果变更前实例的已用内存超过总内存的90%，变更的过程中可能会导致部分key逐出。  4. 变更完成后需要对实例重新[创建告警规则](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190905001.html)。  5. 如果原实例是主备实例，请确保应用中没有直接引用只读IP或只读域名。  6. 请确保您的客户端应用具备重连机制和处理异常的能力，否则在变更规格后有可能需要重启客户端应用。  7. 变更规格过程中会有秒级业务中断、大约1分钟只读，建议在业务低峰时进行变更。   |
| Redis 4.0/5.0/6.0 | 主备实例变更为读写分离实例 说明： 读写分离实例暂不支持直接变更为主备实例。 | 1. 目前只支持主备实例变更为相同容量的读写分离实例，小于4G规格的主备实例不支持变更为读写分离实例。  2. 如果变更前实例的已用内存超过总内存的90%，变更的过程中可能会导致部分key逐出。  3. 变更完成后需要对实例重新[创建告警规则](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190905001.html)。  4. 请确保主备实例的应用中没有直接引用只读IP或只读域名。  5. 请确保您的客户端应用具备重连机制和处理异常的能力，否则在变更规格后有可能需要重启客户端应用。  6. 变更规格过程中会有秒级业务中断，建议在业务低峰时进行变更。  7. 主备实例如果创建了ACL账号，不支持变更为读写分离实例。  8. Redis 6.0如果开启了SSL链路加密传输，不支持变更为读写分离实例。                                                                                                                                                                                    |
   
除了上表中提到的实例外，其他实例类型目前不支持实例类型的变更。若您想实现跨实例类型的规格变更，建议您创建新的实例后进行数据迁移并交换实例IP，迁移操作请参考[使用迁移任务在线迁移Redis实例](https://support.huaweicloud.com/usermanual-dcs/dcs-migration-0312003.html)进行操作。
实例类型变更后支持的命令，请参考对应的[开源命令兼容性](https://support.huaweicloud.com/productdesc-dcs/dcs-pd-200312003.html)。
#### 实例规格变更须知
- **支持实例规格变更明细**
  表2实例规格变更明细 
  | 缓存类型          | 单机实例    | 主备实例          | Cluster集群实例   | Proxy集群实例 | 读写分离实例        |
  |:---|:---|:---|:---|:---|:---|
  | Redis 3.0     | 支持扩容和缩容 | 支持扩容和缩容       | -             | 仅支持扩容     | -             |
  | Redis 4.0     | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | 支持扩容和缩容   | 支持扩容、缩容和副本数变更 |
  | Redis 5.0     | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | 支持扩容和缩容   | 支持扩容、缩容和副本数变更 |
  | Redis 6.0 基础版 | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | 支持扩容缩容    | 支持扩容、缩容和副本数变更 |
  | Redis 6.0 企业版 | -       | 支持扩容和缩容       | -             | -         | -             |
  | Redis 7.0     | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | -         | -             |
  | Memcached     | 支持扩容和缩容 | 支持扩容和缩容       | -             | -         | -             |
     
  
- **实例规格变更的影响：**
  表3实例规格变更的影响 
  | 实例类型                | 规格变更类型 | 实例规格变更的影响                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  |:---|:---|:---|
  | 单机、主备和读写分离实例        | 扩容/缩容  | - Redis 4.0及以上版本基础版实例，扩容期间连接会有秒级中断，大约1分钟的只读，缩容期间连接不会中断。  - Redis 3.0实例，规格变更期间连接会有秒级中断，5\~30分钟只读。  - Redis企业版实例，规格变更期间连接会有秒级中断，大约1分钟的只读。  - 如果是扩容，只扩大实例的内存，不会提升CPU处理能力。  - 单机实例不支持持久化，变更规格不能保证数据可靠性。在实例变更后，需要确认数据完整性以及是否需要再次填充数据。如果有重要数据，建议先把数据用迁移工具迁移到其他实例备份。  - 主备和读写分离实例缩容前的备份记录，缩容后不能使用。如有需要请提前下载备份文件，或缩容后重新备份。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | Proxy和Cluster集群实例   | 扩容/缩容  | - 水平扩容（分片数增加）： - **连接不中断，但会占用CPU，导致性能有20%以内的下降。**  - 分片数增加时，会新增数据节点，数据自动负载均衡到新的数据节点，访问时延会增大。    - 水平缩容（分片数减少）： - 分片数减少时，会删除节点。**Cluster集群实例缩容前，请确保应用中没有直接引用这些删除的节点，否则可能导致业务访问异常。**  - **删除节点会导致连接闪断** ，请确保您的客户端应用具备重连机制和处理异常的能力，否则在变更规格后可能需要重启客户端应用**。**    - 垂直扩容（分片数不变，分片容量增加）： - **如果节点所在的虚拟机内存容量不足，会发生节点迁移，迁移时业务连接会有闪断和只读。**  - 如果虚拟机内存容量充足，则直接扩大节点容量，对业务无影响。   说明： Redis 3.0版本集群实例不支持垂直扩缩容。   - 垂直缩容（分片数不变，分片容量减少）：无影响。  - 实例缩容前，每个节点的已用内存要小于缩容后节点最大内存的70%，否则将不允许变更。  - **实例规格变更期间，可能会进行数据迁移，访问时延会增大。Cluster集群请确保客户端能正常处理MOVED和ASK命令，否则会导致请求失败。**  - 实例规格变更期间，如果有大批量数据写入导致节点内存写满，将会导致变更失败。  - 在实例规格变更前，请先使用缓存分析中的大key分析，**确保实例中没有大key存在**，否则在规格改变后，节点间进行数据迁移的过程中，单个key过大（≥512MB）会触发Redis内核对于单key的迁移限制，造成数据迁移超时失败，进而导致规格变更失败，key越大失败的概率越高。  - **Cluster集群实例扩容或缩容时，请确保客户端开启集群拓扑自动刷新配置** ，否则在变更后需要重启客户端。Lettuce客户端开启集群拓扑自动刷新配置请参考[Lettuce客户端连接Cluster集群实例](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-211105002.html)中的示例。  - 实例规格变更前的备份记录，变更后不能使用。如有需要请提前下载备份文件，或变更后重新备份。   |
  | 主备、读写分离和Cluster集群实例 | 副本数变更  | - Cluster集群实例增加或删除副本时，请确保客户端开启集群拓扑自动刷新配置，否则在变更后需要重启客户端。Lettuce客户端开启集群拓扑自动刷新配置请参考[Lettuce客户端连接Cluster集群实例](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-211105002.html)中的示例。  - 删除副本会导致连接中断，需确保您的客户端应用具备重连机制和处理异常的能力，否则在删除副本后需要重启客户端应用。增加副本不会连接中断。  - 当副本数已经为实例支持的最小副本数时，不支持删除副本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     
  
 
