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

  • 相关阅读:
    monai如何读取.nii/.nii.gz数据
    vue3+vite+ts使用monaco-editor编辑器
    查询sqlserver内存分配情况的SQL
    SpringMVC的统一处理
    Docker 的基本概念
    中国微信生态行业投资价值分析及发展趋势预测报告
    java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档
    STC 51单片机56——摇摇棒
    SQL ZOO —— 7 JOIN Quiz
    wy的leetcode刷题记录_Day27
  • 原文地址:https://blog.csdn.net/wenye____/article/details/133800771