首页 > 数据库 >redisson WRONGPASS invalid username-password pair or user is disable

redisson WRONGPASS invalid username-password pair or user is disable

时间:2024-06-21 16:35:20浏览次数:27  
标签:username WRONGPASS redisson spring boot org password

1、技术架构:若依微服务框架

<dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2021.1</version>
 </dependency>    
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
       <version>2020.0.4</version>
</dependency>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.17.6</version>
</dependency>

2、项目上一直用的自己部署的Redis(7.0.4),并没有设置密码,所以配置都是不带密码的如下

## 不带密码(默认username:default),连接成功
Spring  
  redis:
    host: 127.0.0.1
    port: 6379
    password: 123456
    database: 0

3、总集突然要求所有应用全部使用他们提供的Redis服务(7.0.7,带username),根据总集所提供账号密码配置后,报错如下

WRONGPASS invalid username-password pair or user is disable.. channel: ************ command: (AUTH), params: (password masked)
## 根据网上查的:账号密码带单引号 双引号 password换成auth 均连接失败
spring
  redis:
    host: 127.0.0.1
    port: 6379
    username: 'username'
    password: '123456'
    database: 0

4、经查询,在  redisson-spring-boot-starter:3.17.7版本上已修复了此bug,升级版本后经验证OK

PS:问题最终是解决了,但经过总是曲折的。

5、首先在网上查说是在高版本已修复,但是并未具体哪个版本,所以我第一时间直接将redisson升级到最高版本,发现本地启动确实解决了这个问题,redis连接成功

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.31.0</version>
</dependency>

5、但是当打包上服务器时出现了别的问题,本地启动正常,打包上线出问题???

Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/redis/connection/zset/Tuple

 6、经查询,是springboot版本与redisson-spring-data版本的依赖不兼容导致

7、我将redisson版本升级到了3.31.0,就导致依赖直接成了redisson-spring-data-33

8、此时可以排除内部redisson-spring-data,使用外部引用的方式来解决此问题,经验证此办法也OK

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <exclusions>
      <exclusion>
        <groupId>org.redisson</groupId>
          <artifactId>redisson-spring-data-33</artifactId>
      </exclusion>
    </exclusions>
</dependency>
<dependency>
  <groupId>org.redisson</groupId>
  <artifactId>redisson-spring-data-27</artifactId>
  <version>3.17.7</version>
</dependency>

9、虽然通过8中描述这种办法也能解决,但还是想知道在哪个版本修复了username不生效的问题,故查询redisson官网更新记录,才找到了具体版本3.17.7

https://github.com/redisson/redisson/releases?page=4

10、最终选择将  redisson-spring-boot-starter 升级到 3.17.7解决此问题

标签:username,WRONGPASS,redisson,spring,boot,org,password
From: https://www.cnblogs.com/lansetuerqi/p/18259891

相关文章

  • Redisson详解
    目录第1章:Redisson简介第2章:Redisson的架构与原理第3章:Redisson的基本使用连接Redis基本操作高级数据结构操作分布式锁的使用第4章:Redisson的高级特性分布式数据结构发布/订阅模型延迟队列与阻塞队列第5章:Redisson的分布式服务分布式锁的实现与应用分布式集合......
  • 用Redisson的延迟队列RDelayedQueue处理延迟任务或者定时任务
    什么是RedissonRedisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。什么是RDelayedQueue获取RDelayedQueue:public<V>RDelayedQueue<V>getDelayedQueue(R......
  • Redisson 限流器源码分析
    Redisson限流器源码分析对上篇文章网友评论给出问题进行解答:redis的key是否会过期可以先阅读上篇文章:redis+AOP+自定义注解实现接口限流-古渡蓝按-博客园(cnblogs.com)注解AOP代码部分提取//调用Reids工具类的rateLimiter方法longnumber=RedisUtils.rat......
  • synchronized、Lock本地锁和Redisson分布式锁的简单使用
    文章目录概念准备工作synchronized本地锁演示JUC包的Lock本地锁演示Redisson的RLock分布式锁演示源码地址参考来源概念redisson是一个简单易用的Redis客户端工具。不仅如此,它还具备分布式锁的功能准备工作快速整合SSMP请参考我这篇文章SpringBoot快速整合Spring......
  • Redis教程(十七):Redis的Redisson分布式锁
    Redis分布式锁 Redis分布式锁的主要作用是在分布式系统环境下提供一种机制,用于确保在同一时间只有一个进程(或线程)能够执行某个关键代码段或访问特定的资源。这主要用于控制对共享资源的并发访问,以避免因多个进程同时修改同一数据而导致的数据不一致或其他竞争条件问题。 ......
  • 记录一次Redisson使用synchronized和分布式锁不生效的原因
    最近在开发的过程中,遇到了一个并发场景,用户进行方案复制的时候,当快速点击两次操作的时候,出现了复制方案重名的情况,实际上是复制方案的方案名称,是由后端根据数据库已有的方案名称和当前要复制的方案名称进行逻辑处理,保证方案名称不能重复,比如:要复制的方案名称为“我的方案”,......
  • 使用 Redisson 框架基于 Redis 实现分布式锁
    分布式锁可以采用数据库、zookeeper、redis三种方式实现。采用数据库实现方式,主要采用表字段的唯一索引特性。数据库是非常昂贵的资源,非常不推荐,最致命就是性能,不要去增加不必要的负担。采用zookeeper的实现方式,主要使用其为客户端创建临时有序节点的特性,在我之前的博客有介......
  • Redisson的看门狗机制底层实现
    1.看门狗机制概述看门狗机制是Redission提供的一种自动延期机制,这个机制使得Redission提供的分布式锁是可以自动续期的。privatelonglockWatchdogTimeout=30*1000;1看门狗机制提供的默认超时时间是30*1000毫秒,也就是30秒如果一个线程获取锁后,运行程序到释放锁所花费的时......
  • redisson分布式锁原理
    参考:图灵课堂 https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95https://blog.csdn.net/asd051377305/article/details/108384490分布式锁的引入当在单机单线程情况下,是不用考虑任何并发问题的,一切都是那么的美好,那么的顺其自然。在单机多线程情况下,就要考虑......
  • 【Redisson】源码预读准备工作
    1 前言微服务常见的就是服务和服务之间的协同了,那么Redisson就是我们常用的一种协同工具了,所以想看看它的源码,只有了解它的原理,才能更好的正确使用它。2 准备工作既然要看是不是得先知道的它的源码地址呢?地址:Redisson源码有了源码,是不是还需要一份文档呢?没文档的话怎么......