Не удается подключиться к Redis с помощью jedis

Версия Redis: 3.2.0 Версия Jedis: 2.8.1

Ниже мой Java-код для подключения к Redis:

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

Пожалуйста помоги...


person Burujia Bartoli    schedule 16.06.2016    source источник


Ответы (1)


Есть несколько настроек, которые могут повлиять на это: привязка и защищенный режим. Они работают вместе, чтобы обеспечить базовую безопасность при новых установках.

Найдите в своем redis.conf файле следующее и закомментируйте его:

bind 127.0.0.1

Добавив перед ним #:

# bind 127.0.0.1

Или, если вы не хотите комментировать это, вы также можете добавить к нему IP-адрес своего _5 _ / _ 6_ интерфейса, например:

bind 127.0.0.1 192.168.1.57

Кроме того, если вы не используете защиту паролем, вам также придется отключить защищенный режим, изменив:

protected-mode yes

To:

protected-mode no

Убедитесь, что вы прочитали соответствующую документацию и понимаете последствия обоих этих изменений для безопасности.

После внесения этих изменений перезапустите Redis.

person Sean Bright    schedule 16.06.2016
comment
Я реализовал все эти предложения безрезультатно. - person adv; 02.12.2016