当前位置:首页 > 问答 > 正文

Redis哨兵怎么查看状态和信息,简单操作步骤分享

你需要连接到正在运行的哨兵实例,哨兵默认监听26379端口,你可以使用Redis的命令行工具redis-cli来连接,打开你的终端,输入以下命令(如果哨兵不在本机或端口有修改,请替换相应的IP和端口):

redis-cli -p 26379

连接成功后,命令提示符会变成sentinel>,这表明你现在正在对哨兵发送命令。

查看主节点的信息

这是最常用也最核心的命令,用来查看哨兵监控的主节点(master)的状态,命令是:

sentinel masters

这个命令会列出哨兵所监控的所有主节点的详细信息,信息会非常多,包括主节点的名字、IP地址、端口号、状态、主观下线的次数、从节点的数量等等,如果你只想看某一个特定的主节点,比如你的主节点名叫mymaster,你可以使用:

sentinel master mymaster

这会只显示关于mymaster的详细信息。

查看从节点的信息

知道了主节点的情况,下一步自然是想知道它下面有多少个从节点(slave),这些从节点是否健康,命令是:

sentinel slaves mymaster

mymaster替换成你的主节点名字,这个命令会列出所有被哨兵发现的、属于mymaster的从节点列表,信息包括每个从节点的IP、端口、复制偏移量、连接状态等,帮助你判断数据同步是否正常。

查看哨兵节点本身的信息

一个哨兵集群通常由多个哨兵实例组成,以实现高可用,你想知道当前有多少个哨兵在共同监控你的主节点,它们之间是否能够正常通信,命令是:

sentinel sentinels mymaster

这个命令会列出除了你当前连接的这一个哨兵之外,其他所有也在监控mymaster的哨兵同伴的信息,包括它们的IP、端口、最后通信时间等,如果这里列出的哨兵数量比你实际部署的少,那可能意味着有哨兵节点失联了,需要警惕。

获取当前主节点的地址

这是在应用程序中集成哨兵时最常用的功能,你的应用程序不需要知道主节点到底是谁,它只需要问哨兵:“当前有效的主节点地址是什么?”命令是:

sentinel get-master-addr-by-name mymaster

这个命令会直接返回一个结果,包含当前主节点的IP地址和端口号,应用程序可以通过这个命令动态地找到可写的主节点。

检查哨兵的基本状态

除了上面这些专门的信息查询,还有一些基础命令可以用来检查哨兵是否正常工作。

  • 查看哨兵监控的主节点列表: sentinel masters 会显示详细信息,但如果你只是想知道哨兵在监控哪些主节点,可以快速扫一眼。
  • 检查哨兵是否存活: 使用Redis的通用PING命令,在sentinel>提示符下,直接输入ping,如果它回复PONG,说明这个哨兵进程是活跃的。
  • 查看哨兵的核心配置: 使用info命令,在哨兵模式下,info命令输出的信息是经过筛选的,主要展示与哨兵功能相关的部分,比如它监控的主节点数量、最后一个OK的时间戳等,这比sentinel masters的输出更概括。

查看日志

命令行的信息是瞬时的,而日志则记录了哨兵运行的历史事件,对于排查问题至关重要,哨兵的所有重要操作都会记录在日志文件中,

  • 发现另一个哨兵。
  • 判断主节点进入“主观下线”状态。
  • 与其他哨兵协商,判断主节点进入“客观下线”状态。
  • 发起故障转移投票。
  • 选举出新的主节点。
  • 通知客户端配置变更。

当出现问题时(比如主从切换了但你不知道为什么),第一件事就是去查看哨兵的日志文件,日志文件的路径在你启动哨兵时的配置文件(sentinel.conf)中通过logfile参数指定。

简单操作步骤总结:

  1. 连接哨兵redis-cli -p 26379
  2. 检查主节点sentinel master your-master-name
  3. 检查从节点sentinel slaves your-master-name
  4. 检查其他哨兵sentinel sentinels your-master-name
  5. 动态获取主地址sentinel get-master-addr-by-name your-master-name
  6. 结合日志分析:当有异常时, tail -f 查看哨兵日志文件。

通过以上这些简单的命令,你就可以比较全面地掌握你的Redis哨兵集群和主从复制的运行状态了,日常运维中多使用sentinel masterssentinel slaves来做个快速健康检查是个好习惯。

Redis哨兵怎么查看状态和信息,简单操作步骤分享