变更规格 实例类型 规格变更类型 实例规格变更的影响 单机、主备和读写分离实例 扩容/缩容 Redis 4.0/5.0/6.0基础版实例,扩容期间连接会有秒级中断,大约1分钟的只读,缩容期间连接不会中断。 Redis 3.0实例,规格变更期间连接会有秒级中断,5~30分钟只读。 如果是扩容,只扩大实例的内存,不会提升CPU处理能力。 单机实例不支持持久化,变更规格不能保证数据可靠性。在实例变更后,需要确认数据完整性以及是否需要再次填充数据。如果有重要数据,建议先把数据用迁移工具迁移到其他实例备份。 主备和读写分离实例缩容前的备份记录,缩容后不能使用。如有需要请提前下载备份文件,或缩容后重新备份。 Proxy和Cluster集群实例 扩容/缩容 扩容/缩容分片数未减少时,连接不中断,但会占用CPU,导致性能有20%以内的下降。 扩容/缩容分片数减少时,删除节点会导致连接闪断,请确保您的客户端应用具备重连机制和处理异常的能力,否则在变更规格后可能需要重启客户端应用。 分片数增加时,会新增数据节点,数据自动负载均衡到新的数据节点。 分片数减少时,会删除节点。Cluster集群实例缩容前,请确保应用中没有直接引用这些删除的节点,否则可能导致业务访问异常。 缩容前,实例每个节点的已用内存要小于缩容后节点最大内存的70%,否则将不允许变更。 实例规格变更期间,会进行数据迁移,访问时延会增大。Cluster集群请确保客户端能正常处理MOVED和ASK命令,否则会导致请求失败。 实例规格变更期间,如果有大批量数据写入导致节点内存写满,将会导致变更失败。 在实例规格变更前,请先使用缓存分析中的大key分析,确保实例中没有大key存在,否则在规格改变后,节点间进行数据迁移的过程中,单个key过大(≥512MB)会触发Redis内核对于单key的迁移限制,造成数据迁移超时失败,进而导致规格变更失败,key越大失败的概率越高。 Cluster集群实例扩容或缩容时,如果您使用的是Lettuce客户端,请确保开启集群拓扑自动刷新配置,否则在变更后需要重启客户端。开启集群拓扑自动刷新配置请参考 Lettuce客户端连接Cluster集群实例 中的示例。 实例规格变更前的备份记录,变更后不能使用。如有需要请提前下载备份文件,或变更后重新备份。 主备、读写分离和Cluster集群实例 副本数变更 Cluster集群实例增加或删除副本时,如果您使用的是Lettuce客户端,请确保开启集群拓扑自动刷新配置,否则在变更后需要重启客户端。开启集群拓扑自动刷新配置请参考 Lettuce客户端连接Cluster集群实例 中的示例。 删除副本会导致连接中断,需确保您的客户端应用具备重连机制和处理异常的能力,否则在删除副本后需要重启客户端应用。增加副本不会连接中断。 当副本数已经为实例支持的最小副本数时,不支持删除副本。