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

本地Redis集群连接失败:JedisClusterOperationException问题求助

Redis Cluster Docker镜像Java连接失败问题解决

我在本地运行了一个Redis Cluster Docker镜像,尝试用Java代码连接时出错。

相关信息

Java代码

JedisCluster jedisCluster = new JedisCluster(new HostAndPort("localhost", 7000));

Docker启动命令

docker run -d -p 7000-7005:7000-7005 --name redis-cluster grokzen/redis-cluster

报错信息

<JedisClusterOperationException> Could not initialize cluster slots cache.

Maven依赖

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>5.2.0</version>
</dependency>

操作系统

Ubuntu

更新信息

执行命令 redis-cli -p 7000 后运行 ping 命令,得到如下错误:

(错误) DENIED Redis处于保护模式,因为保护模式已启用且默认用户未设置密码。在此模式下,仅接受来自环回接口的连接。如果要从外部计算机连接Redis,可以采用以下解决方案之一:1) 从运行服务器的同一主机连接Redis,执行命令'CONFIG SET protected-mode no'关闭保护模式,但这样做请确保Redis不会被互联网公开访问。使用CONFIG REWRITE使更改永久生效。2) 或者可以编辑Redis配置文件,将保护模式选项设置为'no',然后重启服务器。3) 如果只是为了测试手动启动服务器,可以使用'--protected-mode no'选项重启。4) 为默认用户设置认证密码。注意:只需执行上述其中一项操作,服务器即可接受外部连接。

解决方案

根据报错信息,问题根源是Redis保护模式阻止了外部连接(Java程序虽在本地,但Docker容器内的Redis将外部请求视为非环回连接),可按以下任一方式解决:

方案1:临时关闭保护模式(容器内操作)

  1. 进入Redis容器:
docker exec -it redis-cluster bash
  1. 连接7000端口的Redis节点:
redis-cli -p 7000
  1. 执行命令关闭保护模式:
CONFIG SET protected-mode no
  1. (可选)若需永久生效,执行:
CONFIG REWRITE

方案2:启动容器时直接关闭保护模式

修改Docker启动命令,通过环境变量关闭保护模式(grokzen/redis-cluster镜像支持此配置):

docker run -d -p 7000-7005:7000-7005 -e REDIS_PROTECTED_MODE=no --name redis-cluster grokzen/redis-cluster

方案3:设置Redis密码

  1. 进入容器连接Redis节点,设置密码:
CONFIG SET requirepass "你的密码"
  1. (可选)永久生效:
CONFIG REWRITE
  1. 修改Java代码,添加密码配置:
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("localhost", 7000));
JedisPoolConfig poolConfig = new JedisPoolConfig();
JedisCluster jedisCluster = new JedisCluster(nodes, 6000, 6000, 3, "你的密码", poolConfig);

额外注意事项

  • 确保Docker端口映射完整(7000-7005端口均已映射),Redis Cluster需要多节点通信。
  • 检查Ubuntu防火墙是否允许这些端口的流量,可临时执行ufw allow 7000:7005/tcp开放端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:31:18