早上开发反馈程序链接redis报错,报错信息发到了群里。 image.png 查看异常发现:“NOT all slots covered!Only 16383 slots are available”大概意思sltos没有全部分配。

登录服务器查看

image.png

三主三从的redis集群

正常的槽位是16384个,从0开始,0-16383,有一个slots没有分配。所以程序报异常了。 原来这个集群是一年前配置的,一直没有使用,今天在使用时候报异常了, 同事的处理办法:因为集群信息都存在node.conf,同时修改nodes配置文件,重启所有节点,集群正常恢复。

模拟异常

我本地创建个redis cluster 手动分配slot,只分配到16382,进行模拟异常。 image.png

查看集群状态也是fail

手动分配slots:# src/redis-cli -h 192.168.0.22 -p 6381 cluster addslots {16383..16383} OK 查看集群状态已经OK image.png 程序链接访问正常,redis cluster 16384个槽一定要全部分配给集群的主节点才可以,如果数据量大,后期可以添加一组主从节点,进行槽位的迁移。