异常报错报错信息关键报错ERR Client sent AUTH, but no password is setRedis和 Redisson 集成如果 Redis 没有设置密码必须注释掉不然Redisson就会主动发起验证spring: redis: host: 127.0.0.1 port: 6379 # password: # ← 这行必须删除或注释 database: 0根本解决办法详细报错org.redisson.client.RedisException: ERR Client sent AUTH, but no password is set. channel: [id: 0xb67a741f, L:/127.0.0.1:64404 - R:127.0.0.1/127.0.0.1:6379] command: (AUTH), params: (password masked) at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377) at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1097) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) at org.redisson.client.protocol.CommandData.tryFailure(CommandData.java:87) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:422)这个错误信息非常明确Redis 服务器没有设置密码但客户端Redisson却尝试发送 AUTH 命令即要求密码认证。这是典型的配置不匹配问题。 错误核心原因ERR Client sent AUTH, but no password is set.Redis 服务器未配置密码requirepass未设置Redisson 客户端配置了password在application.yml中指定了密码✅ 解决方案2 种方式⚙️ 方式 1移除客户端密码配置推荐最简单这是最可能的解决方案因为你的 Redis 服务没有设置密码。打开application.yml或application.properties删除或注释掉spring.redis.password配置spring: redis: host: 127.0.0.1 port: 6379 # password: your_password # ← 删除或注释掉这一行 database: 0⚙️ 方式 2在 Redis 中设置密码如果需要密码如果确实需要密码认证请同时修改 Redis 配置和客户端配置修改 Redis 配置redis.windows.conf# 取消注释并设置密码示例密码123456 requirepass 123456同步修改客户端配置application.ymlspring: redis: password: 123456 # 必须与 Redis 配置的密码一致重启 Redis 服务关键# 先停止当前 Redis taskkill /f /im redis-server.exe # 重新启动 Redis带新配置 redis-server.exe redis.windows.conf️ 为什么会出现这个问题配置项Redis 服务Spring Boot 客户端状态requirepass未设置默认无密码设置了password: abc❌ 不匹配requirepass设置了123456未设置password❌ 不匹配requirepass未设置未设置password✅ 匹配关键点Redis 服务没有密码但客户端错误地配置了密码导致 Redis 报错ERR Client sent AUTH, but no password is set. 最终建议优先使用方式 1移除密码配置因为你之前能用redis-cli ping成功连接说明 Redis 没有密码配置简单无需修改 Redis 服务避免因密码不一致导致的其他连接问题✅正确配置示例无密码spring: redis: host: 127.0.0.1 port: 6379 # password: # ← 这行必须删除或注释 database: 0 为什么之前没报错你之前启动时可能没有配置密码但RedissonAutoConfiguration会尝试连接时默认不带密码。当你的application.yml错误地配置了密码后Redisson 就会发送AUTH命令触发这个错误。✨总结删除spring.redis.password配置问题即可解决其他问题排查验证Redis 是否正常启动1. 启动 Redis 服务最常见原因在 Windows 上Redis 通常是以服务形式运行或者通过命令行启动。请检查任务管理器中是否有redis-server.exe进程。如果没有请打开CMD命令提示符或PowerShell进入你的 Redis 安装目录例如D:\Redis或C:\Program Files\Redis执行以下命令方法 A使用服务命令启动推荐如果你之前已经安装过 Redis 为 Windows 服务# 启动服务 net start redis如果提示“系统错误”请尝试使用方法 B。方法 B命令行直接启动调试用这种方式会占用一个 CMD 窗口关闭窗口服务即停止适合用来查看启动日志。# 进入 Redis 目录后执行假设配置文件名为 redis.windows.conf redis-server.exe redis.windows.conf注意如果双击redis-server.exe会瞬间闪退必须通过命令行运行才能看到报错信息。2. 验证 Redis 是否正常工作在启动服务的窗口保持打开的状态下重新打开一个新的 CMD 窗口进入 Redis 目录执行redis-cli.exe进入交互模式后输入ping如果返回PONG说明 Redis 服务端已经正常启动问题可能出在你的 Spring Boot 项目的配置如密码、端口不一致。如果报错说明服务端本身有问题需要根据 CMD 的报错信息修复 Redis。3. 检查配置文件 (redis.windows.conf)在 Windows 的 Redis 安装目录下找到redis.windows.conf文件检查以下几项配置端口检查确保port 6379没有被注释前面没有#且没有被修改为其他端口。保护模式 (关键)如果你是远程连接或者遇到连接拒绝找到protected-mode这一行protected-mode no建议在开发环境下将其设置为no或者确保你配置了密码。绑定 IP如果你只想本地连接确保有这一行默认通常都有bind 127.0.0.14.密码设置如果你设置了密码请找到requirepass并取消注释requirepass yourpassword如果设置了密码记得在 Spring Boot 的application.yml中配置相同的密码。总结流程图去 Redis 安装目录。运行redis-server.exe redis.windows.conf(看有没有报错)。新开窗口运行redis-cli ping(看是否返回 PONG)。如果第 3 步成功再启动你的 Spring Boot 项目。如果前面3 步都成功了还是报错报错信息:Failed to instantiate [org.redisson.api.RedissonClient]: Factory method redisson threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379 at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ... 131 common frames omitted Caused by: org.redisson.client.RedisConnectionException: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379 at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:228) at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:188) at org.redisson.connection.ConnectionManager.create(ConnectionManager.java:98)排除报错方案二既然你已经确认在 Windows 命令行中redis-server能启动且redis-cli ping能返回PONG说明Redis 服务端本身是健康的。问题出在Spring Boot 应用Redisson 客户端与Redis 服务端的连接握手环节。ExecutionException和RedisConnectionException通常意味着网络可达性问题或协议/认证不匹配。请按照以下高级排查方案进行检查1. 检查redisson.yaml配置文件关键你使用了 Redisson它支持独立的配置文件。如果项目中存在redisson.yaml或redisson.json它会覆盖application.yml中的配置。检查点在resources目录下找找有没有redisson.yaml。问题里面可能配置了错误的 IP、端口或者配置的是集群模式clusterServersConfig但你本地运行的是单机版singleServerConfig。解决如果不需要复杂配置暂时删除或重命名redisson.yaml让 Spring Boot 使用默认的自动配置。2. Windows 防火墙拦截极易被忽视虽然localhost是本机回环但在某些 Windows 网络配置或安全策略下防火墙可能会拦截 Java 进程与 Redis 进程的通信。操作暂时关闭 Windows 防火墙或者在防火墙的“入站规则”中添加redis-server.exe和java.exe为允许。验证关闭防火墙后重启 Spring Boot 项目看是否报错消失。3. IP 地址解析问题虽然你配置的是127.0.0.1但日志里显示的是localhost/127.0.0.1。有时 Java 或 NettyRedisson 的网络层在解析localhost时可能会尝试 IPv6 或者解析失败。解决强制使用 IP。在application.yml中不要写localhost明确写成spring: redis: host: 127.0.0.1 port: 63794. 密码认证不匹配Silent Fail如果 Redis 设置了密码但客户端没配或者客户端配了但 Redis 没设有时候会表现为“连接失败”而不是“认证失败”。检查 Redis 配置打开redis.windows.conf搜索requirepass如果有值例如requirepass 123456确保application.yml中的spring.redis.password填写正确。如果没有值注释状态确保application.yml中不要配置password或者将其留空。5. 端口被占用或冲突虽然redis-cli ping能通但可能有多个 Redis 实例在竞争。操作在 CMD 中运行netstat -ano | findstr :6379检查如果看到状态是LISTENING记下 PID。如果这个 PID 不是你刚刚启动的redis-server的 PID说明端口被其他程序占用了。你需要结束那个进程或者修改 Redis 的端口。6. Spring Boot 版本与 Redisson 版本不兼容如果你的 Spring Boot 版本较新如 3.x而 Redisson 版本较老可能会出现序列化或驱动层面的冲突。