spring boot 连接redis报错 org.springframework.data.redis.RedisConnectionFailureException

本文详细介绍了如何在SpringBoot不同版本中正确配置Redis连接,包括低版本(1.5.11)和高版本的配置示例。针对连接失败问题,提供了检查配置、关闭Redis保护模式、设置防火墙等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring boot 连接redis报错 org.springframework.data.redis.RedisConnectionFailureException

检查配置

application.properties 配置

(spring boot 低版本 本人1.5.11 版本配置)

spring.redis.host=192.168.59.131
spring.redis.port=6379
#spring.redis.password=root #根据需要
# Redis数据库索引(默认为0)
spring.redis.database=0
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0

(spring boot 高版本配置)
spring.redis.jedis.pool.max-active=8 或者 spring.redis.lettuce.pool.max-active=8
引自: https://blog.youkuaiyun.com/qq_33326449/article/details/80457571


# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)

注意:关闭redis的保护模式
这里写图片描述
注释掉绑定的默认ip
这里写图片描述

检查虚拟机防火墙是否关闭, 本人CentOS 7

这里写图片描述
表示防火墙开启, 可以选择关闭防火墙或者添加开启端口

开启端口

这里写图片描述

关闭防火墙

这里写图片描述

然后就可以享受redis了, 困扰了好久的问题终于解决

Windows ping 远程端口

这里写图片描述

引自:https://www.cnblogs.com/hltswd/p/6223824.html

### 解析 `org.springframework.data.redis.RedisConnectionFailureException` 异常 当应用程序尝试连接Redis 数据库却未能成功建立连接时,会抛出 `org.springframework.data.redis.RedisConnectionFailureException` 异常。此异常可能由多种因素引起,包括但不限于网络配置错误、Redis 服务未启动或配置不当等问题。 #### 可能的原因分析 1. **Redis 服务状态** 如果 Redis 服务并未启动,则客户端自然无法与其建立连接。应确认 Redis 是否已在目标主机上正确启动并处于运行状态[^2]。 2. **网络连通性问题** 应验证应用服务器与 Redis 实例之间的网络路径畅通无阻。可以利用命令行工具如 `telnet` 或者更现代的替代品来检测能否访问指定端口(通常是 6379),以此判断是否存在防火墙或其他安全策略阻止了通信请求[^3]。 3. **地址解析失败** 错误信息中提到 `<unresolved>` 表明可能存在 DNS 解析问题或是 IP 地址配置不正确的情况。确保所提供的主机名能够被正确解析成实际可用的 IP 地址,并且该地址指向了一个有效的 Redis 节点[^1]。 4. **认证凭证缺失** 若 Redis 启用了身份验证机制而程序代码里缺少相应的用户名和密码参数设定,则同样会造成连接中断。对于开启了保护模式的 Redis,默认情况下仅允许来自本机循环接口 (localhost) 的未经鉴权链接;此时要么调整权限设置使其开放给外部设备接入,要么提供合法的身份证明材料以便顺利通过校验流程[^4]。 5. **配置文件一致性** 当迁移环境或者更改部署架构之后忘记同步更新必要的属性定义也会引发此类状况。务必仔细核对 Spring Boot 属性文件 (`application.properties`) 中有关 Redis 连接的各项细节是否匹配当前实际情况,特别是涉及到集群拓扑结构变化的情形下更要格外留意[^5]。 #### 排查步骤建议 为了有效定位具体原因并采取针对性措施加以修复: - 使用操作系统的进程管理器查看是否有名为 redis-server 的活动实例存在; - 尝试执行简单的 ping 测试以初步评估两台机器间的可达性和延迟情况; - 对于 Windows 平台上的用户来说,还需额外关注安装包版本兼容性以及服务注册表项的存在与否; - 修改 `/etc/redis/redis.conf` 文件内的绑定地址字段,使之适应多网卡场景下的需求; - 审阅日志记录寻找更多线索,比如超时提示、拒绝访问等字样往往暗示着特定类型的障碍所在位置。 ```bash # Linux/MacOS 下检查 Redis 服务状态 sudo systemctl status redis.service # Windows PowerShell 查看 Redis Server 状态 Get-Service | Where-Object {$_.Name -like "*redis*"} # Ping Test Example ping your_redis_host_ip_address_or_hostname # Telnet Command To Check Port Accessibility On Unix-Like Systems telnet your_redis_host_ip_address_or_hostname 6379 # For Windows Users, Use This Instead Of 'telnet' Test-NetConnection -ComputerName your_redis_host_ip_address_or_hostname -Port 6379 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值