【问题标题】:Cannot connect to redis using jedis无法使用jedis连接到redis
【发布时间】:2016-10-18 11:15:36
【问题描述】:

Redis 版本:3.2.0 绝地版本:2.8.1

下面是我连接redis的java代码:

public class TestRedis {
public static void main(String[] args) {
    String host = args[0];
    int port = Integer.parseInt(args[1]);
    try (Jedis jedis = new Jedis(host, port)) {
        System.out.println("Connected to jedis " + jedis.ping());
    } catch(Exception e){
        e.printStackTrace();
    }
}

}

我在安装redis的机器上运行这个程序。本机ip地址为192.168.1.57

如果我提供 host="localhost" 和 port="6379" 作为参数,则与 redis 的连接成功建立。

但是,如果我在参数中给出 host="192.168.1.57" 和 port = "6379",我最终会遇到以下异常:

redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: 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.sendCommand(Connection.java:100)
    at redis.clients.jedis.Connection.sendCommand(Connection.java:95)
    at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:93)
    at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:105)
    at TestRedis.main(TestRedis.java:14)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at redis.clients.jedis.Connection.connect(Connection.java:158)
    ... 6 more

请帮忙...

【问题讨论】:

    标签: redis jedis


    【解决方案1】:

    有一些设置会对此产生影响:bindprotected-mode。他们共同为新安装提供安全基线。

    在您的 redis.conf 文件中找到以下内容并将其注释掉:

    bind 127.0.0.1
    

    通过在其前面添加#

    # bind 127.0.0.1
    

    或者,如果您不想将其注释掉,也可以将您的eth0/em1接口的IP添加到它,如下所示:

    bind 127.0.0.1 192.168.1.57
    

    此外,除非您使用密码安全,否则您还必须通过更改来关闭保护模式:

    protected-mode yes
    

    收件人:

    protected-mode no
    

    确保您阅读了相关文档并了解这两项更改的安全含义。

    做完这些修改后,重启redis。

    【讨论】:

    • 我实施了所有这些建议都无济于事。
    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2023-03-10
    • 2015-10-13
    • 2012-03-17
    • 2017-12-27
    • 2019-04-04
    相关资源
    最近更新 更多