redis.clients.jedis.exceptions.JedisConnectionException:

在配置Jedis连接Redis高可用集群时,遇到连接异常。检查防火墙、Redis服务及代码配置无误后,问题出在sentinel26380.conf文件上。错误地使用了127.0.0.1作为master地址,改为Linux真实IP后,连接成功。每个sentinel配置文件都需要正确设置IP以确保集群正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做Jedis连接Redis高可用集群,运行代码报了上述异常。

我先是检查了Linux防火墙有没有关闭,Redis服务器有没有启动,以及代码里ip地址和端口号有没有写错。一般连接失败就检查这三个地方。可是我这几项都没有问题,重新启动还是报上述异常,网上搜了好久也没解决。

最后发现是sentinel26380.conf这个文件的问题。这个配置文件里指定master地址的代码,ip地址不能用127.0.0.1,要用Linux的真实ip,如果有多个集群中有多个sentinel,那么每个sentinel对应的配置文件都要修改。如下,sentinel monitor mymaster 这一行。

改完后连接成功,代码成功运行。

Jedis是一个Java语言的Redis客户端库,用于连接和操作Redis数据库。当使用Jedis连接Redis时,可能会遇到连接超时的错误,其中一个常见的错误是`redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection timed out: connect`。 这个错误表示Jedis无法建立与Redis服务器的连接,因为连接超时了。这可能是由于以下原因导致的: 1. Redis服务器未启动或未正确配置:请确保Redis服务器已经启动,并且在Jedis的连接配置中指定了正确的主机名和端口号。 2. 网络连接问题:检查网络连接是否正常,确保Jedis可以访问Redis服务器所在的主机和端口。 3. 防火墙或代理问题:如果你的网络中存在防火墙或代理服务器,请确保它们允许JedisRedis服务器进行通信。 解决这个问题的方法包括: 1. 检查Redis服务器的状态和配置,确保它正常运行并且可以接受来自Jedis的连接。 2. 检查网络连接,确保Jedis可以访问Redis服务器所在的主机和端口。 3. 如果存在防火墙或代理服务器,请确保它们允许JedisRedis服务器进行通信。 4. 如果问题仍然存在,可以尝试增加连接超时时间,以便Jedis有足够的时间来建立连接。 ```java import redis.clients.jedis.Jedis; import redis.clients.jedis.exceptions.JedisConnectionException; public class JedisExample { public static void main(String[] args) { try { Jedis jedis = new Jedis("localhost", 6379); // 进行其他操作 jedis.close(); } catch (JedisConnectionException e) { System.out.println("连接超时错误:" + e.getMessage()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值