Waiting for the cluster to join..

   假如现在有3台机器信息如下:
   A 192.168.131.1 1111(Master)  1112(Slave)
   B 192.168.131.2 2221(Master)  2222(Slave)
   C 192.168.131.3 3331(Master)  3332(Slave)
  • 在3主3从的redis-cluster配置过程中,如果出现了,Waiting for the cluster to join… 这句话,并一直卡在这里,需要考虑以下原因:

    1)配置文件redis.conf 中的bind 设置,IP要是本机地址

  •     A-redis.conf :bind 192.168.131.1
    
  •     B-redis.conf :bind 192.168.131.2
    
  •     C-redis.conf :bind 192.168.131.3
    

    2)确保所有使用的端口之间互通,可用telnet ip port 测试**
    3)登录到每个客户端,执行 flushall、 cluster reset,重启实例之前你要删除以下文件:

 	 rm -rf nodes.conf          // cluster-config-file
	 rm -rf dump.rdb            // dbfilename
	 rm -rf appendonly.aof      // appendfilename

4)如果通讯端口为6379,那么集群总线端口16379一定要打开【重要】
5)使用cluster meet语法

  • 如果B给 A、C发送cluster meet信息(这里挺坑的):

    B上执行redis-cli -c -h 192.168.131.2 -p 2221
        cluster meet 192.168.131.1 1111
        cluster meet 192.168.131.1 1112
        cluster meet 192.168.131.3 3331
        cluster meet 192.168.131.3 3332
    

    如果执行完cluster meet之后,A与B处于handshanke,然后就断掉,导致cluster meet不成功

    尝试检查你机器上的这些端口是否已打开:


        A-port 打开:1111(通讯端口)、11111(总线端口)
                     1112(通讯端口)、11112(总线端口)
        B-port 打开:2221(通讯端口)、12221(总线端口)
                     2222(通讯端口)、12222(总线端口)
        C-port 打开:3331(通讯端口)、13331(总线端口)
                     3332(通讯端口)、13332(总线端口)

现在再去执行cluster meet操作便可以成功了

你可能感兴趣的:(Waiting for the cluster to join..)