*Redis CLUSTER COUNT-FAILURE-REPORTS 命令

CLUSTER COUNT-FAILURE-REPORTS 返回指定节点当前活跃的故障报告数量。


*语法

CLUSTER COUNT-FAILURE-REPORTS node-id

*参数说明

参数 类型 必填 说明
node-id String 目标节点的节点 ID(40 位十六进制字符串)

*返回值

  • Integer:指定节点当前活跃的故障报告数量

*时间复杂度

O(N),其中 N 为该节点当前的故障报告数量。


*示例

*查看某节点的故障报告数

> CLUSTER COUNT-FAILURE-REPORTS 3c3a0c74aae0b56179ccb1a76b7850a3b1f1b26b
(integer) 2

*故障报告数为 0 的情况

> CLUSTER COUNT-FAILURE-REPORTS 07c37dfeb235213a872192d90877d0cd55635b91
(integer) 0

*查看当前节点自身的故障报告

> CLUSTER MYID
"3c3a0c74aae0b56179ccb1a76b7850a3b1f1b26b"
> CLUSTER COUNT-FAILURE-REPORTS 3c3a0c74aae0b56179ccb1a76b7850a3b1f1b26b
(integer) 1

*常见错误

错误 原因 解决
ERR Unknown node 3c3a0c... 提供的 node-id 不存在于集群中 通过 CLUSTER NODES 确认正确的节点 ID
ERR wrong number of arguments 未提供 node-id 参数 补充目标节点 ID
ERR This instance has cluster support disabled 当前节点未启用集群模式 在 redis.conf 中设置 cluster-enabled yes 并重启

*最佳实践

  • 配合 CLUSTER NODES 使用,确认节点 ID 和节点状态
  • 当某个节点处于 fail? 状态(疑似故障)时,可用此命令查看其他节点对其的故障报告数,判断故障传播程度
  • 故障报告机制是 Redis Cluster 的故障检测核心:每个节点向其他节点发送关于疑似故障节点的故障报告,当报告数达到阈值时,节点被标记为 FAIL
  • 生产环境建议通过监控脚本定期检查各节点的故障报告数,及时发现网络分区或节点异常

*FAQ

Q1: 什么是故障报告(failure report)? A: 当节点 A 认为节点 B 疑似故障(PFAIL)时,A 会向其他节点发送关于 B 的故障报告。其他节点收到后会累积这些报告,当达到法定数量(quorum)时,B 被标记为 FAIL

Q2: 故障报告数量达到多少会触发节点被标记为 FAIL A: 取决于该节点的 cluster-node-timeout 配置以及集群的法定数量(quorum)。具体阈值由集群配置决定,通常需要多数主节点的确认。

Q3: 这个命令在单节点或哨兵模式下能用吗? A: 不能。该命令仅在 Redis Cluster 模式下可用。在 cluster-enabled no 的实例上执行会返回错误。