jedis连接超时问题处理

public class TestPing {

public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.201.128", 6379);
System.out.println(jedis.ping());
}
}

运行报错,控制台信息如下:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out

借鉴一些网友的解决方案:

关闭虚拟机的防火墙

      1)暂时关闭防火墙:/etc/init.d/iptables stop

     2) 重启虚拟机生效:chkconfig iptables off   或者 /sbin/chkconfig --level 2345 iptables off

     楼主使用的是第二种方法,如下图所示:

     

重启虚拟机之后,在查看防火墙状态,如下图所示

继续运行上述代码,报错如下:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

解决方案,修改redis.conf配置文件,将端口号127.0.0.1注释掉,这样任何IP都能访问,如下图所示:

保存退出后,运行代码,发现报错依旧,因为尚未启动redis服务,启动redis服务,如下图所示:


上述exception大致意思是:拒绝redis在保护模式下运行的,没有绑定IP地址,没有授权密码,如果你想从外部电脑连接redis的话,你必须要采纳以下其中的某一个解决方法

楼主采用的第二种方法,修改redis.conf配置文件,将protected-mode yes 改为no,如下图所示

重启虚拟机,启动redis服务,如下图所示

运行代码,控制台输出PONG,如下图所示:

到此,问题解决。

猜你喜欢

转载自blog.csdn.net/weixin_40165317/article/details/81432404
今日推荐