1. 问题现象与初步排查
最近在整合SpringBoot和Redis时遇到了一个典型错误:"Unable to connect to Redis"。这个报错表面看是连接问题,但背后可能隐藏着多种配置或环境因素。我花了三天时间系统排查了各种可能性,最终定位到是一个容易被忽略的认证配置问题。下面把我的排查过程和解决方案完整分享出来。
当你在SpringBoot控制台看到这个错误时,首先需要确认的是基础连接参数。错误堆栈通常会显示类似这样的信息:
code复制org.springframework.data.redis.RedisConnectionFailureException:
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException:
Unable to connect to 127.0.0.1:6379
关键提示:Lettuce和Jedis客户端报错信息略有不同,但都会明确提示连接失败。Lettuce是SpringBoot 2.x默认客户端,而Jedis需要显式引入。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心排查流程与解决方案
2.1 基础环境检查
首先进行"四要素"验证:
- Redis服务状态:执行
redis-cli ping应返回"PONG" - 网络连通性:
telnet 127.0.0.1 6379测试端口是否开放 - 防火墙设置:检查服务器和本机防火墙规则
- 绑定配置:确认redis.conf中
bind参数是否允许当前IP连接
我遇到的情况是:本地开发环境能连通,但测试环境报错。最终发现是Redis配置了密码认证,而SpringBoot配置中没有对应设置。
2.2 SpringBoot配置详解
正确配置示例(application.yml):
yaml复制spring:
redis:
host: 192.168.1.100
port: 6379
password: your_redis_password # 这是最容易被忽略的项
lettuce:
pool:
max-active: 8
