GitHub上有人提了一个Issue “redis-trib: use pipeline to speed up moving slot”,通过Pipeline调用Migrate命令,改善redis-trib的迁移速度。但这样只是治标不治本,毕竟迁移的基本单位还是Key而不是Slot。但因为Redis的save/bgsave都是实例级别,所以要想不改Redis源码就获得Slot的复制或迁移能力,还真不太好办!
看看Codis作者的思路:“在RebornDB中我们会尝试提供基于复制的迁移方式,也就是开始迁移时,记录某slot的操作,然后在后台开始同步到slave,当slave同步完后,开始将记录的操作回放,回放差不多后,将master的写入停止,追平后修改路由表,将需要迁移的slot切换成新的master,主从(半)同步复制,这个之前提到过。”
本文作者:geelou
本文来自云栖社区合作伙伴rediscn,了解相关信息可以关注redis.cn网站。