spring boot 配置 redis 报错 NOAUTH Authentication required

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:874)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:417)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:346)
	at redis.clients.util.Pool.getResource(Pool.java:49)

报这个错误说明:

1.redis设置的有密码

2.项目没有读取到redis的密码

可能的情况:

1、检查项目是否配置密码,但客服端访问时没有设置密码。如果没有配置密码就在Spring boot的application.properties中配置redis密码:

# Redis服务器连接密码(默认为空)
#spring.redis.password=superman

2、在Spring boot的application.properties中配置正确的redis密码后,很有可能还是无法访问,或者刚开始能访问,后面又不能访问了。

解决方案两个:

一、简单粗暴的解决:

去掉redis服务器的密码,解决一切烦恼。

在redis文件夹里面找到配置文件:redis.conf或者redis.windows.conf以及redis.windows-service.conf。在到配置文件里面找到requirepass xxx 注释掉。

# requirepass superman

二、文明的解决方案:

原因是这个配置在JedisConnectionFactory中没有被加载进去。

可以在代码中设置的reids密码如下:

@Bean
JedisConnectionFactory jedisConnectionFactory() {
    JedisConnectionFactory factory = new JedisConnectionFactory();
    factory.setPassword("superman");
    return factory;
}

重新启动项目,密码就能被正常获取到。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值