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