本地使用集群模式进行连接redis 出现了相关错误,
You can't have keys in a DB different than DB 0 when in Cluster mode
修改正如下:
删除对应Redis下的rdb文件,然后重启会重新创建。
这里使用springboot进行连接配置如下:
#spring.redis.host=127.0.0.1
#spring.redis.port=8380
#如果是单节点,请使用方面的配置方式,这个是集群连接模式。
spring.redis.cluster.nodes=127.0.0.1:8380
spring.redis.password=xxxxx
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active = -1
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait = -1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle = 8
# 连接池中的最小空闲连接
spring.redis.idle = 0
# 连接超时时间(毫秒)
spring.redis.timeout = 5000
# 读取数据超时时间
spring.redis.so-timeout = 5000
# 最大尝试次数
spring.redis.max-attempts = 10
在连接redis的时候出现如下:
Cannot retrieve initial cluster partitions from initial URIs [RedisURI [host=' 127.0.0.1', port=8380]]
出现这个问题是因为:redis.conf配置文件里的没有开启集群模式:
需要把 cluster-enabled yes 开启 如图:
配置好重启:
重启后验证一下:
./redis-cli --cluster reshard 127.0.0.1:8380 -a 123456
#或者./redis-cli --cluster check 127.0.0.1:8380 -a 123456
你会发现如下错误:
io.lettuce.core.cluster.PartitionSelectorException: Cannot determine a partition to read for slot xxx
这个提示就是 :slot没有重新分配,主要是因为你是一个节点的原因:
你可以执行:使用命令进行修复
./redis-cli --cluster fix 1127.0.0.1:8380 -a 123456
这样就OK了。
这里说明一下,其实没有配置相关集群,主要是开启了集群能力,也就是一个伪集群。