Redis 实现真正意义上的高可用【哨兵模式】
一主多从的 Redis 集群,可以实现一定程度上的高可用,但是这个集群还是存在很大问题的,比如主节点出问题了,我们必须手动去把另一台从节点提升为主节点,需要人工干预,这样就不能实现真正的高可用。什么办法解决?用 Redis 哨兵模式。
哨兵会以一个独立的进程运行在 Redis 集群中,用来监控 Redis 各个节点是否正常工作。它主要用来执行下面几个功能:
① 监控。通过不断地发送命令,来检查 Redis 节点是否正常;
② 通知。如果发现某个节点出了问题,哨兵就会通过发布订阅模式来通知其他节点;
③ 自动故障转移。当主节点不能正常工作的时候,哨兵就会将一个从节点升级为新的主节点,然后再让其他从节点指向新的主节点。
启动哨兵节点命令:redis-sentinel sentinel.conf
哨兵节点本身也是一个进程,它自己也会出问题,所以我们一般要开启三个哨兵节点,一开始选举一个领导者,领导者挂了就再选一个新的领导者,这样就可以保证哨兵节点的高可用了。