You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器内Spring Boot应用无法连接Redis问题求助

解决方案

以下是针对该问题的修复步骤:

  • 问题根因1:你在docker-compose中仅配置了PostgreSQL相关的环境变量,未配置Redis的环境变量,应用默认读取application.properties中的localhost作为Redis地址,而容器内部的localhost指向应用容器本身,自然无法访问同网络下的Redis容器。
    修复方法:在docker-compose.yml的versatile服务的environment节点中新增Redis相关配置:

    - SPRING_REDIS_HOST=redis
    - SPRING_REDIS_PORT=6379
    - SPRING_REDIS_PASSWORD=
    

    该配置优先级高于application.properties,无需修改本地配置文件即可生效。

  • 问题根因2:你的报错日志显示实际生效的Redis客户端为Lettuce,而非你声明使用的Jedis,说明项目依赖中未排除Spring Boot默认集成的Lettuce,导致Jedis配置不生效。
    修复方法:根据你的包管理工具调整依赖:

    • Maven配置(pom.xml):
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
        <exclusions>
            <exclusion>
                <groupId>io.lettuce</groupId>
                <artifactId>lettuce-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>
    
    • Gradle配置(build.gradle):
    implementation ('org.springframework.boot:spring-boot-starter-data-redis') {
        exclude group: 'io.lettuce', module: 'lettuce-core'
    }
    implementation 'redis.clients:jedis'
    
  • 问题根因3:你之前修改application.properties中的Redis地址为redis后未重新构建镜像,docker启动时仍使用旧镜像中的配置,导致修改不生效。
    修复方法:调整配置后执行以下命令重新构建启动服务:

    docker-compose down -v
    docker-compose up --build -d
    

内容的提问来源于stack exchange,提问作者CommoMegaSator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:10