无法使用jedis连接到redis

tvz2xvvm  于 2023-05-16  发布在  Redis
关注(0)|答案(1)|浏览(286)

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();
        }
    }
}

我在安装了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

请帮帮我...

knpiaxh1

knpiaxh11#

有几个设置会影响这一点: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。

相关问题