解决jedis密码为空问题

  • 问题代码如下 
FlinkJedisPoolConfig flinkJedisPoolConfig = new FlinkJedisPoolConfig.Builder()
        .setHost("127.0.0.1")
        .setPort(6379)
        .setPassword("")
        .setTimeout(2000)
        .setMaxTotal(200)
        .setMaxIdle(10)
        .setMinIdle(100)
        .build();
  • 其他可能问题

配置文件中密码为空,配置如下

host=localhost
port=6379
password=
timeout=20000
maxPools=200
minIdl=10
maxIdl=100

读取配置文件中password为空,跟上面setPassword("")效果一样,需要判断密码是否为空,如果为空,setPassword(null)。  

  • 报错提示信息

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

    at redis.clients.util.Pool.getResource(Pool.java:53)
   ……
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
    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)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
    at redis.clients.util.Pool.getResource(Pool.java:49)
    ... 26 more

  • 原因分析

原因是Redis服务器没有设置密码,但客户端向其发送了AUTH(authentication,身份验证)请求。

  • 修改后的代码

FlinkJedisPoolConfig flinkJedisPoolConfig = new FlinkJedisPoolConfig.Builder()
        .setHost("127.0.0.1")
        .setPort(6379)
        .setPassword(null)
        .setTimeout(2000)
        .setMaxTotal(200)
        .setMaxIdle(10)
        .setMinIdle(100)
        .build(); 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值