报错信息
使用SpringBoot连接本地Docker搭建的Redis-Cluster的时候,报如下错误
Caused by: io.lettuce.core.RedisException: Cannot determine a partition to read for slot 6836
看意思是说找不到6836的slot,按理说刚启动的集群,不会被删除的,于是使用redis-cli的命令进行检查
检查修复
进入redis Docker容器
docker exec -it 4688b2715f4a /bin/bash
其中将4688b2715f4a替换为自己的redis-cluster的容器ID
执行检查命令
首先进行检查
root@4688b2715f4a:/data# redis-cli --cluster check 172.17.0.2:7000
显示如下信息
172.17.0.2:7000 (7307aefd...) -> 0 keys | 16384 slots | 0 slaves.
[OK] 0 keys in 1 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 172.17.0.2:7000)
M: 7307aefd72f07b7686a03ee14cd473c9ff93f629 172.17.0.2:7000
slots:[0-16383] (16384 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[ERR] Not all 16384 slots are covered by nodes.
修复
redis-cli --cluster fix 172.17.0.2:7000
过程中会显示是否执行的询问,直接回车即可,修复完成后继续修复7001,7002端口的master
注意:172.17.0.2替换为自己的实际IP,7000、7001、7002位Master的端口(替换为自己实际的端口号)