Redis怎样查询集群的整体健康状态_使用cluster info指令查看槽位覆盖率与节点状态

cluster_state: ok仅表示元数据一致且无不可达节点,不保证所有16384个槽位都被覆盖;若cluster_slots_ok < 16384,即使state为ok,部分请求仍会返回CLUSTERDOWN错误。cluster info 返回的 cluster_state 为什么有时是 ok 却仍有请求失败?因为 cluster_state: ok 只表示集群元数据一致、没有不可达节点,不保证所有槽位(slot)都被覆盖。如果某个槽位没被任何主节点负责(比如主节点宕机且无从节点提升),cluster_state 仍可能是 ok,但客户端发往该槽的请求会返回 CLUSTERDOWN 错误。cluster_state: ok 是必要条件,不是充分条件;真正关键的是 cluster_slots_assigned 和 cluster_slots_ok 是否相等(都应为 16384)用 redis-cli -c -h node_ip -p port cluster info 查看时,务必核对 cluster_slots_assigned == cluster_slots_ok == 16384若 cluster_slots_ok < 16384,说明有槽未被正确服务,此时即使 cluster_state 是 ok,集群也无法全量处理请求如何快速确认是否有槽位丢失或未分配?单靠 cluster info 的数字不够直观,必须配合 cluster nodes 和槽位映射验证。尤其当节点下线后手动执行过 cluster forget 或迁移中断,容易残留"幽灵槽"。运行 redis-cli -c -h ip -p port cluster nodes,检查每行是否含 master 角色标识,且没有 fail? 或 handshake 状态的节点对每个标记为 master 的节点,执行 redis-cli -h ip -p port cluster slots,确认其负责的槽区间连续、无重叠、无空隙注意:cluster slots 返回结果中,每个数组第一、二位是槽范围起点和终点,第三位起才是节点 ID ------ 别把 IP 当成节点 ID 去比对cluster info 中的 cluster_known_nodes 和 cluster_size 区别在哪?cluster_known_nodes 是集群当前元数据里记录的所有节点数(包括已下线但未被 forget 的);cluster_size 是实际参与哈希槽分配的主节点数量(即真正提供服务的 master 数)。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
考虑考虑17 小时前
数据库中的EXISTS
运维·数据库·后端
Wang's Blog18 小时前
Java框架快速入门: Spring Security+OAuth2之数据库和实体类的RBAC改造
java·数据库·spring
花酒锄作田18 小时前
FastAPI 使用 session 认证
python·fastapi
lsswear18 小时前
Python 并发 线程
开发语言·python
梦想平凡19 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
Ivanqhz19 小时前
MLIR OpBuilder
开发语言·python·mlir
xcLeigh19 小时前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
yume_sibai20 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
威联通安全存储20 小时前
TS-h2287XU-RP 在家电制造总装与质检数据场景的部署
python·制造
AugustRed21 小时前
Neo4j 图数据库原理 + 应用场景简单介绍
数据库·neo4j