云数据库 Tair(兼容 Redis)集群架构实例基于新一代管控架构,提供了全新的扩缩容解决方案。在扩容(增加集群分片数量)、缩容(减少集群分片数量)时可以有效规避应用侧产生-ASK
、 -TRYAGAIN
等错误,实现无感扩缩容。
特性说明
云数据库 Tair(兼容 Redis)集群架构实例扩缩容具有以下特点:
高效的扩缩容管理:通过中心化的控制组件,实现对集群行为的高效、精准控制。
无感知的数据迁移:深入修改内核的数据复制逻辑,实现业务连接不闪断、无只读状态。
弹性资源伸缩:支持随时弹性伸缩,满足不同业务场景下的资源需求。
与原生Redis Cluster扩缩容相比,本特性具备下述优势:
无报错请求:在扩缩容期间,应用侧请求不会产生错误,大幅度提高了业务的稳定性和用户体验。
说明无感扩缩容特性无法保证在所有场景下均生效,在少部分扩缩容场景中(请参见注意事项),应用侧依旧可能会有报错。因此,不建议应用侧完全依赖本特性,请提前设计好预案。
最小化延迟:在扩缩容过程中,根据写入流量的不同,应用侧可能会观察到数百毫秒到数秒的延迟,但通常不会影响业务的正常运行。
适用实例
适用下述实例版本:
Redis开源版5.0实例(小版本5.2.0及以上)
Redis开源版6.0实例(小版本6.0.2.0及以上)
Redis开源版7.0实例
Tair(企业版)内存型兼容Redis 5.0版(小版本5.0.34及以上)
Tair(企业版)内存型兼容Redis 6.0版
Tair(企业版)内存型兼容Redis 7.0版
注意事项
经典版集群架构代理模式不支持本特性。
客户端要求:
扩缩容期间,客户端与实例不会断连,但可能会有较高的延迟导致客户端命令超时,需要客户端具有超时重连能力。
若实例为集群架构直连模式,需要客户端能正确处理MOVED命令。
说明建议使用阿里云推荐的客户端。
使用命令要求:
在扩缩容期间使用Blocking类命令可能会产生报错。
在扩缩容期间使用Pub/Sub类命令不提供一致性保证,且视客户端实现可能会产生报错。