springboot继承redis集群踩坑
Exception in thread "main" redis.clients.jedis.exceptions.JedisClusterMaxAttemptsException: No more cluster attempts left.
at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:86)
at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:124)
at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:124)
at redis.clients.jedis.JedisClusterCommand.run(JedisClusterCommand.java:25)
at redis.clients.jedis.JedisCluster.set(JedisCluster.java:112)
at com.concurrent.test.TestCluster.main(TestCluster.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
在本地链接本地redis集群没有问题,可是链接阿里云的集群的时候缺一直连不上 原来问题在这里:
1、redis.conf里面的”bind IP地址“是限制访问IP的,需要注销
2、使用ruby命令开启集群使用的是公网IP,如下:
ruby redis-trib.rb create --replicas 1 公网IP:6379 公网IP:6380公网IP:6381公网IP:6382公网IP:6383公网IP:6384
3、也是最重要的一点,如果执行2步骤一直在“Waiting for the cluster to join....”,那肯定是你端口没有开启,不要质疑,这里的端口
不是7000-7005,而是17000-17005,因为redis设置集群的端口号是”redis端口+10000“,这个非常重要。
打开阿里云对应的端口安全组,并关闭iptables 或者将端口逐个加入;
这样之后由于不知道网络问题还是其他问题 一直链接超时;过了一会儿自己就好了 mmp