【錯誤提示】
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53)
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226)
at cn.hncu.RedisPool.getJedis(RedisPool.java:66)
at cn.hncu.RedisJava.main(RedisJava.java:15)
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
at redis.clients.jedis.Protocol.processError(Protocol.java:127)
at redis.clients.jedis.Protocol.process(Protocol.java:161)
at redis.clients.jedis.Protocol.read(Protocol.java:215)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239)
at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2139)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:108)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
【錯誤原因】
客戶端發送 AUTH(帶密碼的)的請求,失敗。但是Redis沒有設置密碼
使用的是redis-server --service-install安裝的Redis服務,沒有指定確切的配置文件,redis讀取的時候以redis.windows-service.conf爲準了,這裏面的requirepass root是被註釋掉的,所以當客戶端發送帶密碼的redis請求,本地卻沒有設置密碼,所以報錯
redis.windows.conf裏面的設置了密碼(jedis連接的時候沒有使用這個配置文件),但使用Redis Manager可以登錄(這裏我有點懵!)
【解決辦法】
(1)redis連接配置,password註釋掉
或者
(2)redis.windows-service.conf(要看Redis服務是啓動的哪個配置文件),如下:
裏的 #requirepass root 改爲 requirepass root