【错误提示】
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