• Redis哨兵机制原理


         Redis哨兵机制可以保证Redis服务的高可用性。它通过启动一个或多个哨兵进程,监控Redis主服务器是否宕机,如果宕机,哨兵进程会自动将一个从服务器(Slave)升级为主服务器(Master),并通知其他从服务器切换到新的主服务器上。

         哨兵进程会定期向Redis主服务器发送PING命令,如果在规定时间内未收到PONG回复,则认为主服务器已经宕机。这时,哨兵会将该信息发给其他哨兵和从服务器,通过投票机制选举一个哨兵进程,由该进程负责将一个从服务器升级为新的主服务器。

        在Redis哨兵机制中,还有一个重要的概念是Quorum(投票),可以理解为多数派的概念。只有当超过半数的哨兵进程认为主服务器宕机,才会进行自动切换。

    以下是一个简单的Redis哨兵机制的例子:

    1. 启动Redis主服务器和两个从服务器
    1. redis-server --port 6379
    2. redis-server --port 6380 --slaveof 127.0.0.1 6379
    3. redis-server --port 6381 --slaveof 127.0.0.1 6379

    1. 启动三个哨兵实例
    1. redis-sentinel sentinel.conf
    2. redis-sentinel sentinel.conf
    3. redis-sentinel sentinel.conf

    其中,sentinel.conf是哨兵配置文件,示例内容如下:

    1. port 26379
    2. daemonize yes
    3. logfile "/var/log/redis/sentinel.log"
    4. dir "/var/lib/redis/sentinel"
    5. sentinel monitor mymaster 127.0.0.1 6379 2
    6. sentinel down-after-milliseconds mymaster 5000
    7. sentinel failover-timeout mymaster 180000
    8. sentinel parallel-syncs mymaster 1

    上述配置中,定义了哨兵进程监听的端口号、日志文件路径、以及监控的主服务器信息。其中,down-after-milliseconds表示当主服务器在5秒内未响应时,认为主服务器已宕机;failover-timeout表示进行自动切换的超时时间;parallel-syncs表示每个从服务器同步数据的并发数量。

    1. 关闭Redis主服务器
    redis-cli -p 6379 shutdown
    

    因为哨兵配置中定义了down-after-milliseconds为5秒,所以在5秒后,一个哨兵进程会将其中一个从服务器升级为新的主服务器,另一个从服务器将自动切换为从新主服务器上。

    以上是一个简单的Redis哨兵机制的例子,通过多个哨兵进程的投票机制,保证了Redis服务的高可用性

    总之,Redis哨兵机制通过多个哨兵进程的投票机制,保证了Redis服务的高可用性,提高了系统的稳定性和可靠性。

  • 相关阅读:
    在HTML当中引入Vue控件,以element-ui为例
    Centos7安装Redis
    MySQL数据库的主从复制部署详解
    半正定矩阵的对角元素不小于该矩阵的最小特征值
    智慧园区能源监控平台:构建绿色智能的未来城市
    程序员基础能力系列
    nvm安装及使用(mac)
    java绘图技术基础
    python实验课7~8---面向对象
    swing中的并发
  • 原文地址:https://blog.csdn.net/wenye____/article/details/133800771