Redis怎样排查Cluster down异常_检查所有16384个Slot是否被正确分配并分配到了在线节点

浅枫小哥_2422

浅枫小哥_2422

2026-04-08

676人浏览

原创

cluster down异常时需先确认是否存在未分配slot或指向fail节点的slot,用cluster slots检查覆盖与重叠,总slot数必须为16384;再验证节点状态、复制链路及客户端映射更新。

redis怎样排查cluster down异常_检查所有16384个slot是否被正确分配并分配到了在线节点

Cluster down异常时,先确认是否真有Slot未分配

Redis Cluster报CLUSTERDOWN错误,不等于所有Slot都丢了——可能只是某个Slot没被任何主节点负责,或负责它的节点已下线但未被故障转移。真正要查的,是有没有unassigned Slot,以及有没有Slot指向fail状态的节点。

  • 用redis-cli -c -h <host> -p <port> cluster slots</port></host>看完整分配表;别只信cluster info里的cluster_state:ok,它可能滞后
  • 输出里每行开头是Slot范围(如0 5460),接着是负责该段的主节点ID和地址;如果某段后面跟着-(单个短横),说明这个Slot区间未分配
  • 如果看到某段指向一个IP:port,但该节点当前不可达,cluster nodes里对应ID的状态却是fail,那这个Slot就“逻辑在线、物理离线”,Cluster会拒绝写入

快速检查16384个Slot是否全覆盖且无重叠

人工扫cluster slots输出太容易漏——16384个Slot理论上应被划分为连续、无空隙、无重叠的若干段,总长度必须正好是16384。只要有一段缺失或越界,就会触发CLUSTERDOWN。

  • 把cluster slots输出保存为slots.txt,用一行awk校验:awk '{sum += $2-$1+1} END {print sum}' slots.txt,结果不是16384就一定有问题
  • 注意:$1是起始Slot,$2是结束Slot,所以数量是$2 - $1 + 1,不是$2 - $1
  • 重叠不易肉眼发现,可用sort -n按第一列排序后逐行比对:下一段的起始Slot必须等于上一段结束Slot+1,否则中间有断档

节点在线但Slot未分配?重点查MOVED重定向失败链路

常见假象:所有节点ping通、cluster nodes显示都是connected,但客户端仍报MOVED或CLUSTERDOWN。问题往往出在客户端缓存了过期的Slot映射,或服务端尚未完成配置传播。

  • 执行redis-cli -c -h <any-node> -p <port> cluster reset hard</port></any-node>会清空整个集群的Slot映射,慎用;更安全的是只对目标节点执行cluster forget <node-id></node-id>再重新meet
  • 检查cluster nodes输出中每个主节点的flags字段:必须含master且不含noaddr或fail;如果某主节点标着myself,master,fail,说明它自认已下线,但其他节点还没同步到
  • 客户端收到MOVED响应后,必须更新本地Slot映射表;若用Jedis,确认是否启用了setRefreshPeriod;若用redis-py,检查RedisCluster初始化时是否设了skip_full_coverage_check=False(默认为True,会跳过Slot完整性检查)

修复Slot分配前,先确认master-slave关系是否稳定

强行用cluster addslots或cluster reshard补Slot,可能让从节点复制流错乱,尤其当原主节点还在尝试恢复时。

  • 运行cluster nodes,确认每个主节点的从节点列表(第9字段之后)真实存在且状态为slave;若有从节点显示connecting或noaddr,先解决复制链路,再动Slot
  • 用info replication连到疑似问题节点,看master_link_status:up和slave_repl_offset是否持续增长;如果master_link_status:down,cluster failover force也没用
  • reshard过程中若中断,可能留下importing/migrating标记;用cluster nodes找带这两个flag的节点,再对其执行cluster setslot <slot> stable</slot>

Slot分配不是数字游戏,而是节点间状态共识的结果。最常被忽略的,是认为“节点进程活着=它能参与集群决策”——其实只要cluster nodes里它的ping-sent时间戳停滞超过cluster-node-timeout(默认15秒),它就被其他节点标记为fail,哪怕进程仍在跑。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2980

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

249

24

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

2023.09.04

1138

7

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4589

19

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.14

4155

11

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

7792

6

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

643

6

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

756

6

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

7782

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习