Jedis链接Redis问题记录

今天在用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里面去查:

查到了,完美解决!!!