J'utilise jedis 2.8.0 et j'obtiens l'exception suivante:
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
at redis.clients.jedis.Protocol.processError(Protocol.Java:123)
at redis.clients.jedis.Protocol.process(Protocol.Java:157)
at redis.clients.jedis.Protocol.read(Protocol.Java:211)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.Java:297)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.Java:196)
at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.Java:2049)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.Java:89)
at org.Apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.Java:868)
at org.Apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.Java:458)
at org.Apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.Java:363)
at redis.clients.util.Pool.getResource(Pool.Java:49)
... 4 more
Voici l'api que j'utilise:
jedisPool = new JedisPool(jedisPoolConfig, Host, port, IDLE_CONNECTION_TIMEOUT, authSecret);
Remarques:
Aucun mot de passe n'est défini dans votre instance Redis
. Mot de passe envoyé avec redis-cli -a
est simplement ignoré.
Maintenant, vous pouvez définir le mot de passe dans l'instance redis. Pour ce faire, modifiez le fichier de configuration de redis, définissez l'option requirepass
et redémarrez l'instance de redis.
Ou, ignorez simplement l'option de mot de passe lors de la communication avec redis. Par exemple.
jedisPool = new JedisPool(jedisPoolConfig, Host, port, IDLE_CONNECTION_TIMEOUT);