当前位置: 首页 > news >正文

Redis哨兵机制原理

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

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

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

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

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

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

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

port 26379
daemonize yes
logfile "/var/log/redis/sentinel.log"
dir "/var/lib/redis/sentinel"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 180000
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服务的高可用性,提高了系统的稳定性和可靠性。

http://www.lryc.cn/news/190904.html

相关文章:

  • Maven Web应用
  • 考古:MFC界面的自适应缩放(代码示例)
  • 计算机网络 | 物理层
  • Centos下编译ffmpeg动态库
  • 深度学习:UserWarning: The parameter ‘pretrained‘ is deprecated since 0.13..解决办法
  • leetcode-279. 完全平方数
  • MySQL常用指令
  • Pulsar 之架构,客户端以及多区域容灾
  • 【SQL】MySQL中的索引,索引优化
  • uniapp 跳转到指定位置
  • 基于java的图书馆预约座位系统的设计与实现(部署+源码+LW)
  • golang 拉取 bitbucket.org 私有库
  • Sub-1G射频收发器soc芯片 UM2080F32 低功耗 32 位 IoTP
  • 国际减灾日 | 智慧减灾——百分点科技的数据科学视角
  • ChatGLM流式输出的报错修复
  • HDLbits: ece241 2013 q12 // Exams/m2014 q4k
  • vue3模板-vscode设置(语法糖)
  • RFID超高频读写器的特点和应用
  • 诡异事件:开发的安卓摄像头应用突然不能保存图片,回滚代码都查不出来
  • validator库的使用详解
  • ADS版图中连接提示线设置
  • 【MySQL】内置函数——数学函数+其他函数
  • Ubuntu 23.10 Beta 镜像开放下载
  • mybatispagehelp嵌套分页处理
  • 增速波动!W「下」AR「上」!HUD前装供应商比拼硬核能力
  • XXE漏洞复现实操
  • github创建个人网页登录后404无法显示的问题
  • MySQL——源码安装教程(初版)
  • 1.1.C++项目:仿muduo库实现并发服务器之any类的设计
  • linux项目启动脚本start.sh和stop.sh停止脚本