- Jedis踩得坑
- 1 故事的开始
- 2 尝试挣扎
- 3 解决问题
- 4 总结
Redis环境:Ubuntu
IDEA环境:Windows 10
主机和虚拟机桥接方式:NAT
今天试着用Jedis练练手,各方面都准备好了,兴冲冲的打开IDEA准备敲BUG,先看代码
package com.xzzlx;
import redis.clients.jedis.Jedis;
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出现喜庆的颜色
接着着去Ubuntu中打开redis.conf中看看自己是不是没有把远程主机ip注释掉
远程访问
防火墙6379端口也开放了
那怎么还是连接超时啊
最后突然想起来,我的虚拟机的ip地址是多少呢,一查果然发现了问题,Windows中ip为192.168.52.254,但是ubuntu中呢?是192.168.17.135
然后修改代码中ip号
package com.xzzlx;
import redis.clients.jedis.Jedis;
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表示成功了
Jedis中出现连接超时可能是由以下四个可能造成的:
- redis.conf中127.0.0.1没有注释掉,其他ip访问不了
- protected-mode yes中yes没有改成no
- 防火墙没有关闭或者6379端口没有开放
- Jedis中端口号的ip地址和Ubuntu中ip不一样
哎,醉了醉了~~



