Spring Data Redis 报错 WRONGPASS invalid username-password pair问题解决

Spring Data Redis 报错 WRONGPASS invalid username-password pair问题解决

缘起

spring data redis版本:3.2.5
redis server版本:社区版6.0.2

新项目引入了redis,我就把原来的redis代码拷贝过来,但使用时报错:

Caused by: io.lettuce.core.RedisCommandExecutionException: WRONGPASS invalid username-password pairat io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:147)at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116)at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120)at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111)at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745)at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680)at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)at java.base/java.lang.Thread.run(Thread.java:833)

查找问题

redis配置代码逻辑如下:

@Bean("lettuceConnectionFactory")public LettuceConnectionFactory lettuceConnectionFactory() {GenericObjectPoolConfig<RedisConnection> genericObjectPoolConfig = new GenericObjectPoolConfig<>();genericObjectPoolConfig.setMaxIdle(maxIdle);genericObjectPoolConfig.setMinIdle(minIdle);genericObjectPoolConfig.setMaxTotal(maxTotal);RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();redisStandaloneConfiguration.setDatabase(dbNo);redisStandaloneConfiguration.setHostName(host);redisStandaloneConfiguration.setPort(port);redisStandaloneConfiguration.setPassword(RedisPassword.of(password));LettuceClientConfiguration clientConfig = LettucePoolingClientConfiguration.builder().commandTimeout(Duration.ofMillis(timeOut)).poolConfig(genericObjectPoolConfig).build();return new LettuceConnectionFactory(redisStandaloneConfiguration, clientConfig);}@Bean("stringRedisTemplate")public StringRedisTemplate stringRedisTemplate(LettuceConnectionFactory redisConnectionFactory){StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();stringRedisTemplate.setConnectionFactory(redisConnectionFactory);Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);// 设置值(value)的序列化采用Jackson2JsonRedisSerializer。stringRedisTemplate.setValueSerializer(jackson2JsonRedisSerializer);// 设置键(key)的序列化采用StringRedisSerializer。stringRedisTemplate.setKeySerializer(new StringRedisSerializer());stringRedisTemplate.setHashKeySerializer(new StringRedisSerializer());stringRedisTemplate.afterPropertiesSet();return stringRedisTemplate;}

怎么检查redis的host,端口和密码(格式为username:password形式)都是正确的。
最后发现,redisStandaloneConfiguration.setPassword(RedisPassword.of(password));这个要改造下。

解决

redis6.x,username和password要分开写
如果用户名和密码形式是username:password 那么5.x的写法是

redisStandaloneConfiguration.setPassword(RedisPassword.of(password));

如果用户名和密码形式是username:password 那么6.x的写法是

redisStandaloneConfiguration.setUsername(password.split(":")[0]);
redisStandaloneConfiguration.setPassword(RedisPassword.of(password.split(":")[1]));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于web的物流配送管理系统/基于客户时间窗变化的物流配送管理系统/快递配送管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

性能测试工具、负载测试工具、缺陷跟踪工具推荐

负载测试工具 - 有助于对站点或应用程序进行性能/负载测试 1&#xff09;WebLOAD WebLOAD 是一款出色的测试工具&#xff0c;提供了许多强大的脚本功能&#xff0c;有助于测试复杂场景。该工具支持从 Selenium 到移动端、从企业应用到网络协议的数百种技术。使用这款工具可以…

JAVA.包、final、权限

包 final 权限 代码块 1.构造代码块 创建这个本类的对象的时候会先指向构造代码块再执行构造方法 作用&#xff1a;把构造方法重复的部分抽取出来 2.静态代码块 static 随着类的加载而加载&#xff0c;只执行一次。 作用&#xff1a;数据初始化&#xff0c;比如在学生管…

CSS学习笔记[Web开发]

CSS学习 本文为学习笔记&#xff0c;参考菜鸟和w3c 文章目录 CSS 简介CSS 插入外部 CSS内部 CSS行内 CSS多个样式表层叠顺序 CSS 语法例子解释 CSS 选择器CSS 元素选择器CSS id 选择器实例CSS 类选择器实例CSS 通用选择器实例CSS 分组选择器CSS 后代选择器CSS 子元素选择器CSS …

docker容器的自启动策略

1 Docker自启动策略设置 Docker容器的自启动模式主要由--restart策略控制&#xff0c;这个策略定义了在什么情况下容器应该自动重启。以下是Docker中可用的几种自启动模式&#xff1a; no&#xff1a; 这是默认值。容器不会在任何情况下自动重启。如果容器停止&#xff0c;无论…

数据结构:数据类型与抽象数据类型

数据类型与抽象数据类型 数据类型基本数据类型构造数据类型指针类型枚举类型 抽象数据类型&#xff08;ADT&#xff09;抽象数据类型的组成部分常见的抽象数据类型示例 数据类型与抽象数据类型的区别实现抽象数据类型的具体方式用数组实现栈用链表实现栈 总结 数据类型 数据类…

018、从父组件向子组件传递参数

文章目录 Vue 中 props子组件自定义组件的定义完整的单文件组件 举例 父组件引用子组件并声明自定义属性 Vue 中 props 在 Vue 中&#xff0c;props 是用于定义组件接收的数据属性。 子组件 自定义组件的定义 比如下面&#xff0c;定义了三个自定义组件变量 props:["c…

OnlyOffice社区版部署及前端嵌入使用实现office的docx、xlsx等在线协同编辑预览

一、OnlyOffice介绍 ONLYOFFICE 是一款功能丰富的在线办公软件。它由 Ascensio System SIA 公司开发&#xff0c;有社区版、企业版和开发版等版本。本教程介绍开源社区版的安装使用&#xff0c;实现查看、编辑并协作处理文档、工作表、幻灯片&#xff0c;多人实时协同编辑&…

「树形结构」基于 Antd 实现一个动态增加子节点+可拖拽的树

效果 如图所示 实现 import { createRoot } from react-dom/client; import React, { useState } from react; import { Tree, Input, Button } from antd; import { PlusOutlined } from ant-design/icons;const { TreeNode } Tree; const { Search } Input;const ini…

视频怎么加密?常见的四种视频加密方法和软件

视频加密是一种重要的技术手段&#xff0c;用于保护视频内容不被未经授权的用户获取、复制、修改或传播。在加密过程中&#xff0c;安企神软件作为一种专业的加密工具&#xff0c;可以发挥重要作用。 以下将详细介绍如何使用安企神软件对视频进行加密&#xff0c;并探讨视频加密…

C# 基础语法(一篇包学会的)

C#&#xff08;读作"C Sharp"&#xff09;是一种现代的、通用的面向对象编程语言&#xff0c;由微软公司开发。它结合了C和C的强大特性&#xff0c;并去掉了一些复杂性&#xff0c;使得开发者可以更加高效地编写代码。 一、入坑C# (一) 安装和设置 首先&#xff0c…

CSS Shapes布局

CSS Shapes 布局是一个强大的 CSS 功能&#xff0c;它允许开发者定义复杂的形状作为内容的布局容器边界&#xff0c;而不仅仅是传统的矩形或圆形。通过使用 CSS Shapes&#xff0c;你可以创建文本环绕不规则形状的效果&#xff0c;如图片、SVG 图形或其他 HTML 元素。这在创建视…

Vue 实现电子签名并生成签名图片

目录 前言项目结构代码实现 安装依赖创建签名画布组件生成签名图片 总结相关阅读 1. 前言 电子签名在现代Web应用中越来越普遍&#xff0c;例如合同签署、确认表单等。本文将介绍如何使用Vue.js实现一个简单的电子签名功能&#xff0c;并将签名生成图片。 2. 项目结构 项…

外行对自动驾驶汽车的一些想法-2024-

起源 前段时间有关于自动驾驶汽车的讨论&#xff0c;现在热度终于快过去了。 (⊙﹏⊙) 其实&#xff0c;完全不用担心自动驾驶取代人类。 引用 这是一篇24年4月的报道。 上图为引用&#xff0c;可以看到打工人的忙碌。 2023 一个热爱自动驾驶但妥妥外行之人的思考-2023-C…

【进程检测】使用pywin32捕获window进程信息

需求 检测win系统依赖服务进程的运行情况&#xff0c;版本信息&#xff08;进程检测器&#xff09;检测内外网连接情况 实现 进程检测 # 使用pywin32获取进程版本信息 def get_version_info(path):try:info GetFileVersionInfo(path, \\)ms info[FileVersionMS]ls info[…

C/C++樱花树代码

目录 写在前面 系列文章 C简介 完整代码 代码分析 写在后面 写在前面 C实现精美的樱花树&#xff0c;只需这100行代码&#xff01; 系列文章 序号目录直达链接1爱心代码https://want595.blog.csdn.net/article/details/1363606842李峋同款跳动的爱心https://want595.b…

MySQL的高可用(MHA)

高可用模式下的故障切换&#xff0c;基于主从复制。 单点故障和主从复制不能切换的问题。 至少需要三台。 故障切换过程0-30秒 vip地址&#xff0c;根据vip地址所在的主机&#xff0c;确定主备。 主 vip 备 vip 主和备不是优先级确定的&#xff0c;主从复制的时候就确定…

通信原理-思科实验四:静态路由项配置实验

实验四 静态路由项配置实验 一&#xff1a;实验内容 二&#xff1a;实验目的 三、实验原理 四、实验步骤 选择三个2811型号的路由器 R1、R2、R3 路由器默认只有两个快速以太网接口&#xff0c;为路由器R1和R3增加快速以太网接口模块NM-1FE-TX&#xff0c;安装后检查路由器的接…

python使用rich.progress打印彩色进度条

常规的同步方法和for循环的进度&#xff0c;使用tqdm能很直观地展示进度&#xff1b;而一些异步协程或难以预估进度的&#xff0c;可以考虑使用rich.progress Ref: https://typer.tiangolo.com/tutorial/progressbar/#progress-bar 案例一&#xff1a;左侧展示旋转的小圈圈 …

设计模式SOLID原则

在Java编程中&#xff0c;SOLID原则是一组被广泛接受和应用的面向对象设计原则&#xff0c;旨在提高软件设计的灵活性、可维护性和可扩展性。这五个原则分别是&#xff1a; 1. 单一责任原则&#xff08;Single Responsibility Principle, SRP&#xff09; 定义&#xff1a;一…