zoukankan      html  css  js  c++  java
  • redis-sentinel

    sentinel是redis用于实现高可用的方案,通过部署一个sentinel集群,sentinel集群负责监控指定的redis master和slave的状态,并在master挂的时候自动切换主从,从而保证缓存服务的高可用。

    那么sentinel是如何实现的呢?

    1、sentinel启动的时候会指定需要监控的redis master,这里需要注意,是不需要指定redis slave的,因为sentinel可以通过master查询到它的所有slave。

    2、然后sentinel会定时想所有的redis master、slave发送ping命令,redis master、slave收到ping命令后会回复pong命令,sentinel就是根据这个来判断redis master、slave是否处于正常状态的。

    3、当一段时间(可以配置,一般30s)没有收到redis master的回复时,sentinel就认为redis master挂了,并将redis master标记为主观下线(后续还有与之对应的客观下线)。

    4、当超过指定阈值的sentinel都认为redis master挂掉了,sentinel就会选择出来一个leader来处理redis的主从切换。

    5、选择一个保留有最新数据的redis slave,将其设置为mater,并将其他redis slave的master改为新的master。

    sentinel可能存在的问题:

    1、由于redis主从同步是异步的方式,所以当发生主从切换的时候还是有可能造成数据丢失的。

  • 相关阅读:
    jquery queryBuilder过滤插件的使用
    前端跨域问题
    [BZOJ 3326] 数数
    [BZOJ 2427] 软件安装
    [BZOJ 3675] 序列分割
    [Atcoder Grand Contest 004] Tutorial
    [P2831] 愤怒的小鸟
    [Atcoder Regular Contest 065] Tutorial
    [P3806] Divide and Conquer on Tree
    [POJ 1741] Tree
  • 原文地址:https://www.cnblogs.com/lit10050528/p/11456698.html
Copyright © 2011-2022 走看看