• 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服务的高可用性,提高了系统的稳定性和可靠性。

  • 相关阅读:
    基于JAVA游泳馆管理平台计算机毕业设计源码+系统+数据库+lw文档+部署
    uni-app:跨页面传递数组
    在vs code中创建一个名为 “django_env“ 的虚拟环境报错?!以下方法可以解决
    [大话设计模式C++版] 第18章 如果再回到从前 —— 备忘录模式
    2.AUTOSAR SWC设计概述
    基于FPGA开发板的按键消抖实验
    外包干了2个月,技术退步明显.......
    Scala 简介一
    网络请求——跨域 的概念
    搭建自己的搜索引擎之一
  • 原文地址:https://blog.csdn.net/wenye____/article/details/133800771