DCS管理控制台支持变更Redis缓存实例规格,即扩容/缩容,您可以根据实际需要,选择合适的实例规格。
说明
执行实例规格变更操作,建议在业务低峰期进行。业务高峰期(如实例在内存利用率、CPU利用率达到90%以上或写入流量过大)变更规格可能会失败,若变更失败,请在业务低峰期再次尝试变更。
如果实例创建时间非常早,由于实例版本没有升级而无法兼容规格变更(扩容/缩容)功能,请联系技术支持将缓存实例升级到最新版本,升级后就可以支持规格变更(扩容/缩容)功能。
变更规格过程中会有秒级业务中断,需要业务连接Redis的模块支持连接中断后重连。
实例变更规格,不会影响实例的连接地址、访问密码、数据、及安全组/白名单配置等信息。
实例类型变更须知
DCS实例类型变更明细
实例版本 支持的实例变更类型 变更须知及影响 Redis 3.0 单机实例变更为主备实例 连接会有秒级中断,大约1分钟左右的只读。 主备实例变更为Proxy集群实例 如果Redis 3.0主备实例数据存储在多DB上,或数据存储在非DB0上,不支持变更为Proxy集群;数据必须是只存储在DB0上的主备实例才支持变更为Proxy集群。
连接会中断,5~30分钟只读。Redis 4.0/5.0 主备实例或读写分离实例变更为Proxy集群实例 变更为proxy集群时,需要评估proxy集群的多DB使用限制和命令使用限制对业务的影响。具体请参考Proxy集群使用多DB限制,实例受限使用命令。
变更前实例的已用内存必须小于变更后最大内存的70%,否则将不允许变更。
如果变更前实例的已用内存超过总内存的90%,变更的过程中可能会导致部分key逐出。
变更完成后需要对实例重新创建告警规则。
如果原实例是主备实例,请确保应用中没有直接引用只读IP或只读域名。
请确保您的客户端应用具备重连机制和处理异常的能力,否则在变更规格后有可能需要重启客户端应用。
变更规格过程中会有秒级业务中断、大约1分钟只读,建议在业务低峰时进行变更。Proxy集群实例变更为主备实例或读写分离实例
除了上表中提到的实例外,其他实例类型目前不支持实例类型的变更,若您想实现跨实例类型的规格变更,可参考实例交换IP进行操作。
实例类型变更后支持的命令,请参考对应的开源命令兼容性。
实例规格大小变更前须知
- 支持扩容和缩容明细如下:
DCS实例规格变更说明
缓存类型 | 单机实例 | 主备实例 | Cluster集群实例 | Proxy集群实例 | 读写分离实例 |
---|---|---|---|---|---|
Redis 3.0 | 支持扩容和缩容 | 支持扩容和缩容 | 不涉及 | 支持扩容 | 不涉及 |
Redis 4.0 | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 |
Redis 5.0 | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 | 支持扩容、缩容和副本数变更 | 支持扩容和缩容 | 支持扩容、缩容和副本数变更 |
Redis 6.0 | 支持扩容和缩容 | 支持扩容和缩容 | 不涉及 | 不涉及 | 不涉及 |
说明Redis3.0实例在预留内存不足的情况下,内存用满可能会导致扩容失败。
副本数变更和容量变更不支持同时进行,需分开两次执行变更。
- 实例规格变更的影响:
实例规格变更的影响
实例类型 | 规格变更类型 | 实例规格变更的影响 |
---|---|---|
单机、主备和读写分离实例 | 扩容/缩容 | 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集群实例中的示例。 删除副本会导致连接中断,需确保您的客户端应用具备重连机制和处理异常的能力,否则在删除副本后需要重启客户端应用。增加副本不会连接中断。 当副本数已经为实例支持的最小副本数时,不支持删除副本。 |
操作步骤
步骤 1 登录分布式缓存服务管理控制台。
步骤 2 在管理控制台左上角单击,选择区域和项目。
步骤 3 单击左侧菜单栏的“缓存管理”。进入缓存管理页面。
步骤 4 在需要规格变更的实例右侧,单击“操作”栏下的“更多 > 变更规格”,进入到分布式缓存服务变更规格页面。
步骤 5 在变更实例规格页面中,选择您需要变更的目标规格。
说明Redis 4.0/5.0主备、读写分离和Cluster集群实例支持选择“容量变更”或“副本数变更”。
步骤 6 选择变更时间为“立即变更”或“可维护时间窗内进行变更”。
“可维护时间窗内进行变更”适用于如下 变更规格时存在客户端连接中断的场景 。
变更规格时存在客户端连接中断的场景
变更规格任务 | 客户端连接中断的场景 |
---|---|
单机或主备实例扩容 | 从8G以下扩容到8G或8G以上时 |
Proxy或Cluster集群实例缩容 | 分片数减少时 |
变更实例类型 | 主备/读写分离与Proxy集群之间实例类型变更 |
删除副本 | 主备/Cluster集群/读写分离实例删除副本 |
说明
不涉及客户端连接中断的场景,选择在可维护时间窗内变更,也会立即变更。
提交变更规格后,不支持取消变更,可以修改“维护时间窗”时间推迟变更(变更过程中,维护时间窗可修改次数不超过3次)。
Redis 3.0变更实例时,仅支持“立即变更”
在“维护时间窗”内变更的实例,变更的起始时间点是在维护时间窗时段内的随机时间,不是维护时间窗的起始时间。
集群实例缩容需要迁移的数据量过大时,缩容完成的时间可能会超出可维护时间窗。
步骤 7 单击“下一步”,在弹窗中了解变更须知后,单击“确认变更”。
步骤 8 单击“提交订单”,开始变更DCS缓存实例。
在界面上您可以选择跳转到后台任务列表,查看变更任务的状态,具体可参考查看实例后台任务。
DCS单机和主备缓存实例规格变更大约需要5到30分钟,集群实例规格变更所需时间稍长。实例规格变更成功后,实例状态切换为“运行中”。
说明
当单机实例规格变更失败时,实例对用户暂不可用,实例规格仍然为变更前的规格,部分管理操作(如参数配置、规格变更等)暂不支持,待后台完成变更处理后,实例将自动恢复正常,实例规格将更新为变更后的规格。
当主备和集群实例规格变更失败时,实例对用户仍然可用,实例规格仍然为变更前的规格,部分管理操作(如参数配置、备份恢复、规格变更等)暂不支持,请按照变更前的规格使用,避免因数据超过规格而被丢失。
当规格变更成功时,您可以按照新的规格使用DCS缓存实例。