错误描述
在迁移一个节点上的slot到另一个节点的时候卡在其中的一个slot报错,截图如下:
查询发现在15495的这个slot上面存在一个key,但是并没有发现这个key有什么问题。使用fix进行修复也还是不行。
解决办法1:
修复迁移节点
redis-trib.rb fix 127.0.0.1:7003
再执行check,如果没有报错继续迁移
解决办法2:登入提示错误的两个节点执行以下清除命令
cluster setslot 15495 stable
解决办法3:
删除15495这个slot上的key再执行fix修复
del key
redis-trib.rb fix 127.0.0.1:7003
注意:如果通过上面的方法处理过后还是会报错,那就有可能是默认gem安装的redis-4.0.0的问题,需要安装老一点版本的gem,redis-3.2.2.gem的链接下载地址如下:
https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
安装方法:
gem install redis-3.2.2.gem
卸载方法
gem uninstall redis-4.0.0.gem