[Redis Cluster]Redis cluster集群报错解决集锦(更新中)

一 Node is not empty 

[ERR] Node 192.168.161.131:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

1)将每个节点下aof、rdb、nodes.conf本地备份文件删除; 
2)172.168.63.201:7001> flushdb #清空当前数据库(可省略) 
3)之后再执行脚本,成功执行;


二 Not all 16384 slots are covered by nodes

[ERR] Not all 16384 slots are covered by nodes.

这个往往是由于主node移除了,但是并没有移除node上面的slot,从而导致了slot总数没有达到16384,其实也就是slots分布不正确。所以在删除节点的时候一定要注意删除的是否是Master主节点。
1)、官方是推荐使用redis-trib.rb fix 来修复集群…. ….  通过cluster nodes看到7001这个节点被干掉了… 那么
#  ./redis-trib.rb fix xxx.xxx.xx.xxx:7001
修复完成后再用check命令检查下是否正确
# ./redis-trib.rb check xxx.xxx.xx.xxx:7000
只要输入任意集群中节点即可,会自动检查所有相关节点。可以查看相应的输出看下是否是每个Master都有了slots,如果分布不均匀那可以使用下面的方式重新分配slot:
#  ./redis-trib.rb reshard xxx.xxx.xx.xxx:7001

你可能感兴趣的:(Redis,on,Java)