2016-06-16 2 views
4

Redis версии: версия 3.2.0 Jedis: 2.8.1Не удается подключиться к Redis с помощью Jedis

Ниже мой 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 успешно установлено.

Однако, если я даю хост = "192.168.1.57" и порт = "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 

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

+0

У вас возникло это исправление? Я тоже столкнулся с проблемой, и это не имеет никакого смысла. Он должен работать, но это не так. – adv

ответ

3

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

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

bind 127.0.0.1 

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

# bind 127.0.0.1 

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

bind 127.0.0.1 192.168.1.57 

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

protected-mode yes 

To:

protected-mode no 

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

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

+1

Я внедрил все эти предложения безрезультатно. – adv

Смежные вопросы