SpringBoot整合Redis启动失败的常见错误以及解决方法

 更新时间:2025年11月18日 09:21:29   作者:程序员1970  
本文详细介绍了Spring Boot整合Redis启动失败的常见错误及其解决方法,涵盖了服务配置、配置文件、依赖、集群配置、密码、网络、连接池、依赖冲突和Redis服务端等多个方面的问题,通过逐一排查和解决这些问题,需要的朋友可以参考下

一、Redis服务配置问题

1. Redis服务未启动

报错内容

Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

原因:Redis服务未启动

2. Redis配置文件错误(bind和protected-mode)

报错内容

org.springframework.data.redis.connection.RedisConnectionFailureException: 
Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

原因

  • Redis配置文件中bind 127.0.0.1未注释
  • protected-mode未设置为no

解决方案

  1. 注释bind 127.0.0.1
  2. protected-mode yes改为protected-mode no

二、配置文件错误

1. 连接参数配置错误

报错内容

Caused by: org.springframework.data.redis.connection.PoolException: 
Could not get a resource from the pool; 
nested exception is io.lettuce.core.RedisConnectionException: 
Unable to connect to 127.0.0.1:6379

原因

  • 配置文件中的host、port或password与实际Redis服务不匹配
  • YAML配置缩进错误

正确配置

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: password
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 1s

三、依赖问题

1. 缺少必要依赖

报错内容

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'redisConnectionFactory' defined in class path resource 
[org/springframework/boot/autoconfigure/data/redis/RedisAutoConfiguration.class]: 
Cannot create a Redis connection factory for the given configuration.

原因:缺少spring-boot-starter-data-redis依赖

解决方案

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2. 依赖版本不兼容

报错内容

Caused by: java.lang.NoClassDefFoundError: org.springframework.data.redis.connection.RedisConnectionFactory

原因:Jedis与spring-boot-starter-data-redis版本不兼容

解决方案

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.1</version> <!-- 与Spring Boot版本匹配 -->
</dependency>

四、Redis集群配置错误

1. 客户端配置为集群模式,但Redis未开启集群

报错内容

ERR This instance has cluster support disabled

原因

  • 配置了spring.redis.cluster.nodes但Redis未配置为集群模式

解决方案

  1. 如果使用单节点,修改为单节点配置:
spring:
  redis:
    host: 127.0.0.1
    port: 6379
  1. 如果需要集群,确保Redis已正确配置集群

五、密码配置问题

1. 密码不匹配

报错内容

org.springframework.data.redis.connection.PoolException: 
Could not get a resource from the pool; 
nested exception is io.lettuce.core.RedisConnectionException: 
ERR Client sent AUTH, but no password is set

原因

  • 配置了password但Redis服务器未设置密码
  • 配置的password与Redis实际密码不匹配

解决方案

  1. 确保Redis配置文件中设置了正确的密码:
requirepass your_password
  1. 确保配置文件中password与Redis设置一致

六、网络与防火墙问题

1. 防火墙阻止端口访问

报错内容

org.springframework.data.redis.connection.RedisConnectionFailureException: 
Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

原因:防火墙阻止了6379端口的访问

解决方案

# CentOS
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

七、连接池配置问题

1. 连接池参数配置不当

报错内容

org.springframework.data.redis.connection.PoolException: 
Could not get a resource from the pool; 
nested exception is io.lettuce.core.RedisConnectionException: 
Unable to connect to XXX.XXX.XXX:6379

原因:连接池配置不合理,导致连接被耗尽

解决方案

spring:
  redis:
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 1s

八、依赖冲突问题

1. 依赖版本冲突

报错内容

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.repository.config.RepositoryConfigurationSource

原因:依赖版本冲突,特别是Spring Data Commons版本不匹配

解决方案

  1. 移除显式指定的依赖版本,让Spring Boot自动管理版本
  2. 确保所有依赖与Spring Boot版本兼容

九、Redis服务端问题

1. Redis服务端端口被占用

报错内容

org.springframework.data.redis.connection.RedisConnectionFailureException: 
Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

原因:6379端口被其他进程占用

解决方案

# 检查端口占用
netstat -anp | grep 6379

# 结束占用进程
kill -9 <PID>

总结

  1. 确认Redis服务已启动redis-cli ping应返回PONG
  2. 检查配置文件:确保host、port、password正确
  3. 检查依赖:确保包含spring-boot-starter-data-redis和Jedis
  4. 检查Redis配置:注释bind 127.0.0.1,设置protected-mode no
  5. 检查防火墙:确保6379端口开放
  6. 检查连接池配置:合理配置连接池参数
  7. 检查版本兼容性:确保Spring Boot与Redis客户端版本兼容

以上就是SpringBoot整合Redis启动失败的常见错误以及解决方法的详细内容,更多关于SpringBoot整合Redis启动失败的资料请关注脚本之家其它相关文章!

相关文章

  • XML解析四种方式代码示例详解

    XML解析四种方式代码示例详解

    这篇文章主要介绍了XML解析四种方式代码示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Spring Boot(二)之web综合开发

    Spring Boot(二)之web综合开发

    本篇文章为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功能,但是是spring特别推荐的一些开源技术本文也会介绍),对了这里只是一个大概的介绍,特别详细的使用我们会在其它的文章中来展开说明
    2017-05-05
  • Spring Boot详解配置文件的用途与用法

    Spring Boot详解配置文件的用途与用法

    SpringBoot项目是一个标准的Maven项目,它的配置文件需要放在src/main/resources/下,其文件名必须为application,其存在两种文件形式,分别是properties和yaml(或者yml)文件
    2022-06-06
  • java往php传数据操作方法

    java往php传数据操作方法

    在本篇内容里小编给大家分享的是关于java往php传数据操作方法和技巧,需要的朋友们可以跟着学习下。
    2018-12-12
  • Java中的ThreadLocal功能演示示例

    Java中的ThreadLocal功能演示示例

    这篇文章主要介绍了Java中的ThreadLocal功能演示示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-02-02
  • 详解SpringCloud微服务架构之Hystrix断路器

    详解SpringCloud微服务架构之Hystrix断路器

    本篇文章主要介绍了详解SpringCloud微服务架构之Hystrix断路器,Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互,有兴趣的可以了解一下
    2018-01-01
  • Redis高并发场景防止库存数量超卖少卖

    Redis高并发场景防止库存数量超卖少卖

    商品超卖是销售数量超过实际库存的情况,常因库存管理不当引发,传统库存管理在高并发环境下易出错,可通过线程加锁或使用Redis同步库存状态解决,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-09-09
  • Java观察者设计模式(Observable和Observer)

    Java观察者设计模式(Observable和Observer)

    这篇文章主要介绍了 Java观察者设计模式(Observable和Observer)的相关资料,需要的朋友可以参考下
    2015-12-12
  • Java实现图片转换PDF文件的示例代码

    Java实现图片转换PDF文件的示例代码

    这篇文章主要介绍了Java实现图片转换PDF文件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring @Transaction 注解执行事务的流程

    Spring @Transaction 注解执行事务的流程

    这篇文章主要介绍了Spring @Transaction 注解执行事务的流程,Spring 是如何开启事务的?又是如何进行提交事务和关闭事务的,本文给大家详细介绍,需要的朋友可以参考下
    2021-06-06

最新评论