今天在用Jedis链接Redis数据库时,不停的报出如下错误,搜罗网上各类信息,也没解决。
由于我是在本地安装的虚拟机,在虚拟机安装的Redis,如下是我报错的代码:
public class JedisAdapter {
public static void print(int index,Object obj) {
System.out.println(String.format("%d,%s", index, obj.toString()));
}
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
jedis.set("a", "b");
}
}
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:158)
... 4 more
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)
at redis.clients.jedis.Connection.connect(Connection.java:164)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80)
at redis.clients.jedis.Connection.setTimeoutInfinite(Connection.java:68)
at redis.clients.jedis.Jedis.subscribe(Jedis.java:2626)
at shipxpress.pubsubservice.controllers.SubscriberThread.run(MainController.java:227)
忽然想尝试一下,我这个虚拟机是有本身的IP地址的,那么相对于我本身的Windows系统,就不能使用本地IP127.0.0.1。因此我尝试进入redis.conf配置文件,将bind 127.0.0.1修改成下:
个人虚拟机IP地址配置的是:
这么一修改,代码也要修改,修改以下:
Jedis jedis = new Jedis("192.168.120.129", 6379);
再次实验,成功!!!
再到Redis里面去查:
查到了,完美解决!!!