SENTINEL RESET仅清空当前哨兵内存中指定主节点的“已知从节点列表”和“故障节点缓存”,不删除配置、不修改拓扑、不广播至其他哨兵,需对每台哨兵单独执行并等待下轮定时任务(默认10秒)重新发现。

SENTINEL RESET 命令到底清什么
SENTINEL RESET 不删除配置、不修改 sentinel.conf、不广播给其他哨兵,它只清空当前哨兵进程内存中关于指定主节点的「已知从节点列表」和「故障节点缓存」。比如你之前用 sentinel monitor mymaster 192.168.1.10 6379 2 配过一个主节点,后来下线了两台从机(192.168.1.100:6380 和 192.168.1.101:6380),但哨兵仍会在 SENTINEL slaves mymaster 结果里返回它们——这就是缓存滞留,RESET 就是为解决这个。
为什么执行后还是看到离线节点
常见现象:运行了 redis-cli -p 26379 SENTINEL RESET mymaster,立刻查 SENTINEL slaves mymaster,离线 IP 还在列表里。
- 哨兵不会立即重发现,得等下一轮定时任务(默认 10 秒),期间缓存未刷新
-
RESET只作用于当前连接的哨兵实例,集群里其他哨兵完全不受影响,必须每台都执行一遍 - 如果返回
ERR unknown master name,说明mymaster拼错,或该哨兵压根没加载过这个监控项(比如配置文件没 reload,或根本没配) - 检查日志有没有
+reset-master行,这是命令生效的唯一可靠信号
执行前必须确认的三件事
盲目 RESET 可能导致短暂监控空白或故障转移异常。
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 确保
mymaster是你在所有哨兵上统一使用的 master-name,不是 IP 或别名;大小写敏感 - 确认主节点当前在线且可连:如果主节点本身已宕机,
RESET虽然成功,但后续无法拉取新从节点列表,等于白清 - 若刚做过故障转移,建议等至少 30 秒再
RESET,避免和哨兵内部状态机冲突(比如正在投票或同步配置)
reset 后要不要 flushconfig
不需要。 SENTINEL RESET 是纯内存操作,不影响磁盘配置;sentinel flushconfig 是把当前哨兵内存里的全部配置(包括所有 monitor 条目、auth 设置等)强制刷回 sentinel.conf 文件——这跟清理离线节点无关,反而可能覆盖你手动改过的配置。
真正要做的只有两步:对每台哨兵逐个执行 SENTINEL RESET <master-name>,然后等 10–30 秒再验证 SENTINEL slaves <master-name> 输出是否干净。最容易被忽略的是“每台都跑”,漏掉任意一台,离线节点就还在那里挂着。

















