Redis集群和哨兵环境下节点故障排查命令

一般来说,当我们的服务采用集群或者哨兵搭建后,不免会出现节点挂掉重新选举新的主节点,当然,这样很大程度避免了数据的丢失,但是作为开发人员还要有一定的问题处理能力,要能够准确找到每次出现问题的原因才是关键;

问题一:当有节点挂掉后,快速找到问题节点

排查思路:

进入 redis-cli

1:如果时哨兵环境i,可以执行

info replication

这个命令可能包含一下信息:

# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=1234567,lag=0
master_replid:abcde1234567890
master_replid2:abcde1234567890
master_repl_offset:1234567
second_repl_offset:1234567
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:123456
repl_backlog_histlen:12345

解释
role: 表示当前 Redis 实例的角色,可能是 master 或 slave。
connected_slaves: 当前连接的从节点数量。
slave0: 显示第一个从节点的信息,包括:
ip: 从节点的 IP 地址。
port: 从节点的端口号。
state: 从节点的状态(如 online 或 offline)。
offset: 从节点接收的最新数据偏移量。
lag: 从节点与主节点之间的延迟,单位是秒。
master_replid: 主节点的复制 ID。
master_replid2: 备份的复制 ID。
master_repl_offset: 主节点的复制偏移量。
second_repl_offset: 二次复制的偏移量(适用于某些复制配置)。
repl_backlog_active: 表示复制回溯日志是否处于激活状态。
repl_backlog_size: 复制回溯日志的大小(字节)。
repl_backlog_first_byte_offset: 复制回溯日志的第一个字节的偏移量。
repl_backlog_histlen: 复制回溯日志的历史长度

通过这个命令可以得知,当前主节点的从节点有哪些有几个,通过从节点ip地址和端口号来排查出挂掉的那一台节点位置

集群状态查询

cluster info

127.0.0.1:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_sent:627819
cluster_stats_messages_received:627808

 解释:
 

  • cluster_state: ok
    表示集群当前状态正常,没有发现任何故障。

  • cluster_slots_assigned: 16384
    这是 Redis 集群的槽位总数。Redis 集群使用 16384 个槽位来分配数据,所有的槽位都被分配。

  • cluster_slots_ok: 16384
    说明所有分配的槽位都处于正常状态,没有出现问题。

  • cluster_slots_pfail: 0
    潜在故障槽位的数量为 0,表明集群没有任何槽位处于可能失败的状态。

  • cluster_slots_fail: 0
    故障槽位的数量为 0,表示没有任何槽位真正处于故障状态。

  • cluster_known_nodes: 6
    集群中已知的节点数量为 6,这意味着在集群配置中注册了 6 个节点。

  • cluster_size: 3
    实际上参与数据存储的主节点数量为 3。可能有额外的从节点存在,或者有些节点没有参与。

  • cluster_current_epoch: 7
    当前的集群纪元为 7。这个数字用于管理集群状态的变化,每次集群配置变化时,这个数字都会增加。

  • cluster_my_epoch: 1
    本节点的纪元为 1。与 cluster_current_epoch 对比,这个数字较小,可能意味着此节点在集群中的角色或状态需要更新。

  • cluster_stats_messages_sent: 627819
    自集群创建以来发送的消息总数。

  • cluster_stats_messages_received: 627808
    自集群创建以来接收的消息总数。发送和接收的消息数量相近,表明集群通信正常。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学会用脚编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值