美文网首页dibo大数据进阶
Redis哨兵模式的工作流程

Redis哨兵模式的工作流程

作者: 鸿雁长飞鱼龙潜跃 | 来源:发表于2019-05-28 08:42 被阅读66次

    Redis哨兵模式的工作流程。

    哨兵模式是redis的高可用性解决方案。

    Sentinel的默认端口是26379。不同于redis的端口6379。

    哨兵的本质是redis节点。

    一,哨兵模式是如何工作的

    什么是哨兵模式呢?Sentinel

    首先,哨兵模式是一个监控,哨兵模式通过心跳机制监控集群中的所有master和slave。

    然后,哨兵模式会在master下线时,通过一定的规则,将这台master属下的某个slave升级为master。

    最后,集群在新的master领导下,继续对外提供服务。

    二,master下线重新上线后会抢夺master吗

    答案是不会,为什么呢?我们都知道,每个节点都有一个redis.conf文件。

    如果是slave节点,会配置slaveof项。而master节点没有此项配置。

    那么,在master挂掉,重新选举master的时候,这个配置项是如何更新的呢?

    这里涉及到三类配置文件:

    master_redis.conf

    slave_redis.conf

    sentinel_redis.conf

    首先,下线的master会变成slave,

    master_redis.conf文件里会增加一个配置slaveof master的ip和端口。

    然后其中的一台slave会变成master,slave_redis.conf配置文件中移出slaveof配置项。其他的slave会更新自己的slaveof,指向新的master节点。

    最后,sentinel变更监控节点的信息。sentinel_redis.conf文件也需要相印的修改。

    这里有一个疑问:sentinel监控master节点还是监控所有的节点?

    三,总结

    1,master可读可写,slave只可读。

    redis设置读写分离的命令是:

    slave-read-only yes

    这个是在master的配置文件中配置就可以了。

    2,master与slave是一对多的关系,但是一个master对应的slave越多,集群压力越大,延迟可能就越严重。

    3,master写入后立即返回,几乎同时将写入异步同步到slave,所以基本上延迟可以忽略。

    4,可以通过slaveof no one命令将slave升级为master。这里指的是手动操作,也就是说不是使用的哨兵模式。

    5,可以通过哨兵模式监控集群,当master挂掉以后,自动选举slave变为master,其他slave自动重连master。

    有个疑问:哨兵模式的选举机制是什么,满足什么条件的slave才会成为master。

    四,哨兵模式通过什么机制来产生新的master?

    是选举机制吗?

    网友说法,哨兵模式选举新任master使用的是Raft算法,大概意思就是先到先得。

    和Zookeeper的选举机制有什么区别?

    相关文章

      网友评论

        本文标题:Redis哨兵模式的工作流程

        本文链接:https://www.haomeiwen.com/subject/xpaltctx.html