web-dev-qa-db-ja.com

jedisを使用してredisに接続できません

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

助けてください...

7
Burujia Bartoli

これに影響を与えるいくつかの設定があります:bindおよびprotected-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を再起動します。

7
Sean Bright