云数据库 Tair(兼容 Redis)集群架构实例在扩容(增加集群分片数量)、缩容(减少集群分片数量)过程中,能够有效消除原生Redis集群可能会产生的-ASK
、 -TRYAGAIN
错误,从而实现无感扩缩容。
特性说明
与原生Redis 集群扩缩容相比,云数据库 Tair(兼容 Redis)集群架构实例扩缩容具有以下特点:
高效的扩缩容管理:通过中心化的控制组件,实现对集群行为的高效、精准控制。
原子性数据迁移:深入修改内核的数据复制逻辑,保证数据迁移的原子性。在扩缩容期间,数据以Slot为单位进行数据迁移,不会造成Slot分裂,也不会产生业务无法处理的
-ASK
、-TRYAGAIN
错误,大幅度提高了业务的稳定性和用户体验。在RESP集群协议中,非数据操作类命令例如PING、INFO等,以及特殊命令如PUB/SUB类和BLOCKING类命令,在Slot迁移后无法被自动重定向,需要应用层定时更新路由表来获取扩缩容后的最新拓扑。
为了保证数据迁移前后的数据一致性,在数据迁移的最终阶段,对应Slot的写请求时延会增加,但不会失败。
缩短数据迁移时长:在扩缩容过程中,本方案采用以Slot为单位进行数据迁移,相较于以Key为单位的数据迁移方案,能够显著提高效率,从而有效缩短数据迁移的时长。
弹性资源伸缩:支持弹性伸缩,满足不同业务场景下的资源需求。
适用实例
实例部署模式为云原生版。
适用下述实例版本:
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类命令不提供一致性保证,且视客户端实现可能会产生报错。
- 本页导读 (1)
- 特性说明
- 适用实例
- 注意事项