使用springboot连接远程redis集群失败,除了一下原因外:
- 没有注释bind 127.0.0.1
- 没有关闭保护模式,即protected-mode yes(改为no)
这些原因都不是没有解决我的问题,造成连接失败的原因还可能是创造集群命令的IP错误:
出错时的命令:
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
--cluster-replicas 1 -a 123456
正确的命令的需要指定宿主机的IP
#最好使用的是主机的IP,而不是127.0.0.1
redis-cli --cluster create 192.168.236.100:7000 192.168.236.100:7001 \
192.168.236.100:7002 192.168.236.100:7003 192.168.236.100:7004 192.168.236.100:7005 \
--cluster-replicas 1 -a 123456
原因分析:
连接失败是因为在集群环境中,存储数据和读取数据都是要跨节点的,所以需要节点间相互通信,在使用RedisTemplate访问数据时其实只是访问了集群中的一个节点,当跨节点时,需要和其它节点通信,但是我使用的127.0.0.1,程序误以为我要访问127.0.0.1的redis,但我的redis在远程服务器上,所以会访问失败。