当前位置: 首页 > news >正文

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
    自集群创建以来接收的消息总数。发送和接收的消息数量相近,表明集群通信正常。


http://www.mrgr.cn/news/51443.html

相关文章:

  • ZW3D二次开发_UI_ZW3D表单使用QT原生表单
  • React JSX 使用条件语句渲染UI的两种写法
  • 软件测试面试200问,面试看这就够了。。。
  • StaccaToe 机器人:动态运动与精密控制的融合
  • 楼宇智慧公厕的几个功能需要哪些硬件支持
  • 【华为云开发者空间实践指导】基于FunctionGraph实现Gif动图制作应用开发
  • uniapp 小程序0到1教程
  • 某协程旅行 - sign、token
  • java代码生成器集成dubbo,springcloud详解以及微服务遐想
  • 100. UE5 GAS RPG 显示范围魔法的攻击范围
  • Unity-Shader-SubShader CG代码块
  • 例行性工作(at,crontab)
  • 【Linux】了解pthread线程库,清楚并没有线程创建接口,明白Linux并不存在真正意义的线程(附带模型图详解析)
  • OGG错误:ORA-28000:the account is locked
  • js实现简单的【发布者-订阅者模式】
  • 工信部 | 信息技术应用创新人才证书哪个科目好考?
  • 栈的压入、弹出序列
  • vector使用与实现
  • 基于华为昇腾910B,实战 InternLM2.5-7B-Chat 模型推理
  • 还在百度搜PDF工具,完全免费的神器推荐给你-PDF24工具箱!