redis-trib.rb脚本实现reshard功能报错

使用redis-trib.rb脚本实现迁移slot的时候,发现了一个问题,当迁移的slot上有key-value存在的时候,就会发生错误。错误信息如下:

redis-trib.rb脚本实现reshard功能报错

可以看到,7236的slot状态为open,该slot在迁出节点8028状态为migrating,在迁入节点3958状态为importing。

解决方式:

1、登录8038和3958,执行命令:cluster setslot 7236 stable 

2、如果集群设置了密码,需要先将集群密码取消掉。

3、修改redis-trib.rb脚本,具体查看 https://blog.****.net/m0_37128231/article/details/80755478,感谢这位老哥。

4、重新执行reshard,这样带key-value的slots就可以实现迁移了。

关于redis:上边使用的redis版本是3.2.12,redis5.0版本之后将不通过了redis-trib.rb脚本管理集群,通过redis.cli对集群进行管理,同时5.0版本支持新数据结构。有很多特性等待发觉。