redis cluster当有多台从服务器宕机,进行重启

4 篇文章 0 订阅
4 篇文章 0 订阅

笔者今天kill掉全部cluster的全部从节点,原本是想试试读写分离的,但Kill掉之后重启之后却无法主从
在这里插入图片描述
可以看到,只有主节点在运行,于是笔者进入到redis中 输入命令 cluster nodes 后出现以下的信息

在这里插入图片描述
cluster nodes显示的每一行信息,由下面的字段组成。

《id》《ip:port》《flags》《master》《ping-sent》《pong-recv》《config-epoch》《link-state》《slot》《slot》《slot》

每个字段的含义如下

  1. id: 节点ID,一个40字节的随机字符串,节点创建时生成,且不会变化(除非使用CLUSTER RESET HARD命令)。

  2. ip:port: 客户端访问的地址。

  3. flags: 逗号分隔的标记位,可能值有:myself, master, slave, fail?, fail, handshake, noaddr, noflags。

  4. master: 若是已知master节点的slave,这里出现的是master的节点ID,否则是"-"。

  5. ping-sent: 最近一次发送ping的unix毫秒时间戳,0代表没有发送过。

  6. pong-recv: 最近一次收到pong的unix毫秒时间戳。

  7. config-epoch: 该节点或其master节点的epoch值。每次故障转移都会生成一个新的,唯一的,递增的epoch值。若多个节点竞争相同的slot,epoch值大的获胜。

  8. link-state: 节点和集群总线间的连接状态,可以是connected或disconnected。

  9. slot: 该节点负责的slot。

flags字段各标记含义如下:

myself: 当前连接的节点。

master: 节点是master。

slave: 节点是slave。

fail?: 节点处于pfail状态,当前节点无法和其联系,但其它节点可以。

fail: 节点处于fail状态,大多数节点都无法和其联系,将其由pfail升级到fail状态。

handshake: 还没完全加入集群,正在握手阶段。

noaddr: 不知道节点地址。

noflags: 没有任何标记。

根据noaddr的含义,可知有此标记的节点属于无用节点,而笔者通过新增子节点依然无效,最后尝试

ps -aux|grep redis
pkill -9 redis

注意,这里不能kill -9 进程号,需要全部的redis都Kill 掉并且重新启动

/usr/local/redis/bin/redis-server  redis.conf

启动时可以会出现无法启动的问题,我们需要清除掉dump.rdb 文件

最后重启成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值