阿里云redis集群用JedisCluster无法连接

今天用阿里云的服务器搭了一个redis的伪集群,端口7001-7006,中间遇到几个问题

首先在

./redis-trib.rbcreate --replicas 1 主机ip:7001主机ip:7002主机ip:7003主机ip:7004主机ip:7005主机ip:7006

这里的主机ip必须是公网ip,否则远程无法连接

另外

注意安装集群的时候,防火墙中不仅要放开redis的端口,还要放开,而且需要开通集群总线端口

集群总线端口为redis客户端连接的端口 +10000

如redis端口为6379

则集群总线端口为16379

所以当前的机器上要放开17001-17006端口,否则安装集群的时候会一直Waiting for the cluster to join

接着使用jedis连接集群,发现每个节点单独连都可以连接,但是JedisCluster无法连接,报错

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

我同样的安装方法在自己的虚拟机上没问题,但是阿里云上就连不上

本地使用redis-cli命令客户端也能连接阿里云的集群,开始怀疑是java的问题

我的jedis用的jar包版本是2.9.0,换成了2.7.2,代码一点没改,竟然成功了!!!

总结:

java连接阿里云的redis集群,先在本地用redis-cli测试集群是否可用,如果可用,就检查java代码

java的jedis包不能用最新的。redis是3.2.11版本。本地虚拟机测试没问题。但是阿里云连接的时候就不能用jedis2.9.0的jar,需要降低版本,2.7.2可用。坑






你可能感兴趣的:(Redis)