无法使用jedis连接到redis

Bur*_*oli 7 redis jedis

Redis版本:3.2.0 Jedis版本: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();
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我在安装了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
Run Code Online (Sandbox Code Playgroud)

请帮忙...

Sea*_*ght 7

有一些设置可能会影响此设置:bindprotected-mode。他们一起工作以提供新安装的安全性基线。

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

bind 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

#在其前面添加一个:

# bind 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

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

bind 127.0.0.1 192.168.1.57
Run Code Online (Sandbox Code Playgroud)

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

protected-mode yes
Run Code Online (Sandbox Code Playgroud)

至:

protected-mode no
Run Code Online (Sandbox Code Playgroud)

确保您阅读了相关文档并了解这两个更改的安全隐患。

进行这些更改后,重新启动Redis。

  • 我没有执行所有这些建议。 (2认同)