哨兵其实就是一个运行在特殊模式下的 Redis 进程,主从库实例运行的同时,它也在运行。哨兵主要负责的就是三个任务:监控、选主(选择主库)和通知。
我们先看监控。监控是指哨兵进程在运行时,周期性地给所有的主从库发送 PING 命令,检测它们是否仍然在线运行。如果从库没有在规定时间内响应哨兵的 PING 命令,
哨兵就会把它标记为“下线状态”;
同样,如果主库也没有在规定时间内响应哨兵的 PING 命令,哨兵就会判定主库下线,然后开始自动切换主库的流程。
9044:X 22 Aug 19:36:38.633 # -sdown slave 192.168.137.4:6379 192.168.137.4 6379 @ mymaster 192.168.137.2 6379
9044:X 22 Aug 19:36:47.422 # -sdown sentinel 772456a402f26495598fb80f8acaeca804194d1c 192.168.137.4 26379 @ mymaster 192.168.137.2 6379
30048:X 29 Nov 14:41:31.356 # +sdown slave 192.168.137.4:6379 192.168.137.4 6379 @ mymaster 192.168.137.2 6379