Redis异构集群数据实时迁移
背景 由于历史原因,公司的缓存方案使用的是Codis,并且一个大部门公用一个集群,我们计划废弃Codis,用Redis原生的集群架构,为什么要废弃Codis呢,主要有两个原因:1、Codis官方已经很久没有更新维护了,Redis官方版本已经迭代到5.x.x了,codis-server还是3.x.x,Redis的一些新特性无法支持;2、基于风险均摊、鸡蛋不放一个篮子的原则,目前我们这样的用法违背了这一原则,如果一个集群出问题,那么整个部门的全部服务都受影响。在前期和业务部门调研的过程中发现,大家用Codis不仅仅是做缓存,有些业务场景还当储存用,比如计数器等;所以我们需要一个数据实时迁移方案,这样业务才能无感知的从Codis迁移到Redis。 方案选型 需求 1、支持从Codis到Redis Cluster做数据迁移 2、支持从Codis到哨兵集群做数据迁移 3、支持只迁移部分key 4、支持查看迁移进度 调研 1、redis-migrate-tool redis-migrate-tool是唯品会开源的一款Redis异构集群之间的数据实时迁移工具,不过已经有两年没有更新了,我个人觉得这是一款比较完善的工具,特别是数据校验,详细功能介绍见GitHub: https://github.com/vipshop/redis-migrate-tool 2、RedisShake