Jedis出现Connect timed out

Jedis踩得坑

Redis环境:Ubuntu
IDEA环境:Windows 10
主机和虚拟机桥接方式:NAT

1 故事的开始

今天试着用Jedis练练手,各方面都准备好了,兴冲冲的打开IDEA准备敲BUG,先看代码

package com.xzzlx;

import redis.clients.jedis.Jedis;

/**
 * @author:
 * @Description:
 * @date:2021/11/16 16:54
 */
public class JedisDemo1 {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.52.254", 6379);
        String value = jedis.ping();
        System.out.println(value);
    }
}

运行代码,
然后,然后~
它就来了Caused by: java.net.SocketTimeoutException: Connect timed out出现喜庆的颜色
在这里插入图片描述

2 尝试挣扎

接着着去Ubuntu中打开redis.conf中看看自己是不是没有把远程主机ip注释掉
访问主机IP
远程访问
在这里插入图片描述
防火墙6379端口也开放了
防火墙6379
那怎么还是连接超时啊

3 解决问题

最后突然想起来,我的虚拟机的ip地址是多少呢,一查果然发现了问题,Windows中ip为192.168.52.254,但是ubuntu中呢?是192.168.17.135
在这里插入图片描述
然后修改代码中ip号

package com.xzzlx;

import redis.clients.jedis.Jedis;

/**
 * @author:
 * @Description:
 * @date:2021/11/16 16:54
 */
public class JedisDemo1 {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.17.135", 6379);
        String value = jedis.ping();
        System.out.println(value);
    }
}

看到控制台上打印pong表示成功了
在这里插入图片描述

4 总结

Jedis中出现连接超时可能是由以下四个可能造成的:

  • redis.conf中127.0.0.1没有注释掉,其他ip访问不了
  • protected-mode yes中yes没有改成no
  • 防火墙没有关闭或者6379端口没有开放
  • Jedis中端口号的ip地址和Ubuntu中ip不一样

哎,醉了醉了~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值