[qishibo/AnotherRedisDesktopManager]集群连接不上,提示 Cluster is ended

2025-10-27 365 views
1
OS
  1. 运行AnotherRedisDesktopManager 客户端在 Mac M1上
  2. Redis集群版 在Mac的docker中安装的
  3. Redis单机版 在mac上brew安装的
VERSION

redis 7.0.4

ISSUE DESCRIPTION

【问题结果】:

  1. 连接不上集群,客户端日志为下面内容:

    14:59:59 - [ioredis-cluster(refresher):192.168.50.244@6355]: cluster slots [0.04ms] 14:59:59 - [ioredis-cluster(refresher):192.168.50.244@6355]: auth ** [0.08ms] 14:59:59 - [ioredis-cluster(refresher):192.168.50.244@6355]: client setname ioredis-cluster(refresher):192.168.50.244@6355 [0.04ms] 14:59:59 - [ioredis-cluster(refresher):192.168.50.244@6355]: cluster slots [0.04ms] 14:59:59 - [192.168.50.244@6355]: config get databases [0.00ms] 14:59:59 - [192.168.50.244@6355]: scan 0 MATCH COUNT 500 [0.00ms] 14:59:59 - [192.168.50.244@6355]: scan 0 MATCH COUNT 500 [0.00ms] 14:59:59 - [192.168.50.244@6355]: scan 0 MATCH COUNT 500 [0.00ms] 14:59:59 - [192.168.50.244@6355]: info [0.00ms] 15:00:04 - [ioredis-cluster(refresher):192.168.50.244@6355]: cluster slots [0.00ms] 15:00:29 - [192.168.50.244@6355]: quit [0.13ms] 15:00:29 - [192.168.50.244@6355]: quit [0.04ms] 15:00:29 - [192.168.50.244@6355]: quit [0.04ms]

  2. 尝试过用本地单机版连接集群某一个节点,可以成功连接,但是get 跳转的时候,跳转到内网去了。我怀疑也可能是这里的原因,但是不知道怎么解决这个问题

image

具体问题操作过程:

  1. 我先用docker-compose.yml编排了6个节点,并成功启动 贴部分yml内容:(尝试过网络设置为host 和 自定义birdge 都有问题)
image
  1. 编排成功后,进入6350节点后,创建集群,用的统一是MAC路由器中获得的内网IP,非docker内的IP

    redis-cli -a **** --cluster create 192.168.50.244:6350 192.168.50.244:6351 192.168.50.244:6352 192.168.50.244:6353 192.168.50.244:6354 192.168.50.244:6355 --cluster-replicas 1

  2. 设置完上面的内容,就开始尝试连接,就出现连接不了的情况。

请大神帮忙解决一下,困扰了我好几天了,我另一台windows网段跟mac一致,用同样的方式尝试,也是连不上

回答

8

贴一下 节点内容和信息:

image image
0

法1:更改设置,让cluster nodes返回的ip是宿主机ip,而非docker内部ip 法2:使用ssh的方式,在某个node里开启sshd,Another通过ssh的方式登录到该node,然后链接Redis的ip填写172开头的内部ip,redirect返回的172也能正常访问,这样就不用管其他配置了,简单些

5

首先谢谢大神回复

您的两种方案中,第二种略微简单一点 但是可能满足不了我的需求,因为我的这6个节点需要跟java程序去连接,但是java好像不能做到ssh方式去连接集群。

关于第一种,能具体帮忙说说这个怎么改吗?我尝试过,但是并未生效好像,是要在docker-compose之前修改所有redis节点的conf文件中的 cluster-announce-ip 这个字段吗?

如果是,是把cluster-announce-ip 这个字段的值修改为我例子中的192.168.50.244吗?

如果是,那就是说,如果我192的这个IP变化了,那就完全不能用了是吧?

1

集群的链接是否可以使用 -c 参数呢? 公司的redis集群使用命令行是可以在本地使用的,但是工具会报 Cluster is ended

8

不知你是否已解决问题,我遇到了相同的问题,看了qishibo的解决方案2得到灵感解决了another redis desktop manager连接集群报错的问题。

  1. 编辑连接中选择连接方式SSH+Cluster;
  2. SSH填写宿主机IP和登录用户信息;
  3. Cluster填写redis的docker容器中的IP+Port,以及redis密码; 希望能有所帮助。 截屏2024-04-23 11 07 47