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

Java使用Jedis连接Docker Compose部署的Redis连接失败如何解决

问题原因
  • 你的Docker Compose配置中Redis服务未对外暴露端口,宿主机上运行的Java程序无法通过本地网络访问到Docker容器内部的Redis实例
  • 你提供的异常显示程序尝试连接redis:6379,redis是Docker Compose内部网络的服务域名,只有同网络下的其他容器(比如你部署的Redis Commander)可以使用,宿主机程序无法直接解析该域名
解决步骤
  1. 修改docker-compose.yml配置,给Redis服务添加端口映射,修改后的完整配置如下:
version: '3'
services:
  redis:
    container_name: redis
    hostname: redis
    image: redis
    # 新增端口映射配置
    ports:
      - "6379:6379"

  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    environment:
    - REDIS_HOSTS=local:redis:6379
    ports:
    - "8082:8081"
  1. 重启Docker Compose服务使配置生效,执行命令:
docker-compose down && docker-compose up -d
  1. 确认Java代码连接配置正确,使用localhost作为连接地址,默认端口6379,你原本的代码逻辑无需修改:
Jedis jedis = new Jedis("localhost");
String pingResponse = jedis.ping();
System.out.println("ping should return pong" + pingResponse);
  1. 可以先在宿主机执行redis-cli ping验证连通性,返回PONG即说明Redis服务可正常访问,再运行Java代码即可。

内容的提问来源于stack exchange,提问作者ss-ss-v1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:03