作用

  • 监控redis服务器的运行状态, 可以进行自动故障转移(failover), 实现高可用

  • 数据库主从 配合使用的机制


特点

  • 独立的进程, 每台redis服务器应该至少配置一个哨兵程序

  • 监控redis主服务器的运行状态

  • 出现故障后可以向管理员/其他程序发出通知

  • 针对故障,可以进行自动转移, 并向客户端提供新的访问地址


流言协议

  • 当某个哨兵程序ping 发现监视的主服务器下线后(心跳检测), 会向监听该服务器的其他哨兵询问, 是否确认主服务器下线, 当 确认的哨兵数量 达到要求(配置文件中设置)后, 会确认主服务器下线(客观下线), 然后进入投票环节

投票协议

  • 当确认主服务器客观下线后, 哨兵会通过 投票的方式 来授权其中一个哨兵主导故障转移处理

  • 只有在 大多数哨兵都参加投票 的前提下, 才会进行授权, 比如有5个哨兵, 则需要至少3个哨兵投票才可能授权

  • 目的是避免出现错误的故障迁移


建议最低配置

  • 至少在3台服务器上分别启动至少一个哨兵

  • 如果只有一台, 则服务器宕机后, 将无法进行故障迁移

  • 如果只有两台, 一旦一个哨兵挂掉了, 则投票会失败


相关配置


bind 127.0.0.1 # 哨兵绑定的ipport 26381 # 哨兵监听的端口号, redis客户端需要访问哨兵的ip和端口号sentinel monitor mymaster 127.0.0.1 6380 2 # 设置哨兵 (主数据库别名 主数据库ip 主数据库端口 确认下线的最小哨兵数量)sentinel down-after-milliseconds mymaster 60000 # 服务器断线超时时长sentinel failover-timeout mymaster 180000 # 故障转移的超时时间sentinel parallel-syncs mymaster 1 # 执行故障转移时,最多几个从数据库可以同时同步主数据库数据(数量少会增加完成转移的时长; 数量多则正在同步的从数据库会因同步而无法提供数据查询功能)# 设置守护进程和日志文件夹
daemonize yes# 日志路径可以自定义
logfile "/var/log/redis-sentinel-26381.log"

其他

# 启动哨兵
sudo redis-sentinel sentinel1.conf
sudo redis-sentinel sentinel2.conf
sudo redis-sentinel sentinel3.conf # 进入哨兵 redis-cli -p 端口号
redis-cli -p 26381# 查看信息
info sentinel# 关闭哨兵
sudo redis-cli -p 26379 shutdown

redis系列之--哨兵机制搭建相关推荐

  1. redis 系列25 哨兵Sentinel (高可用演示 下)

    原文:redis 系列25 哨兵Sentinel (高可用演示 下) 一. Sentinel 高可用环境准备 1.1 Sentinel 集群环境 环境 说明 操作系统版本 CentOS  7.4.17 ...

  2. redis主从复制和哨兵机制

    一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一.新增redis6380.conf, ...

  3. 分布式缓存架构(3)-Redis事务主从复制哨兵机制

    Redis的主从复制 概述: redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库,一类是从数据库,主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是 ...

  4. redis系列之哨兵模式

    为什么要有哨兵模式 如果主数据库由于某种原因宕机了,怎么办?无法给用户提供修改服务,也没有办法给从数据库进行数据同步.如果需要恢复服务,就必须从从数据库中选一个主数据库作为主数据库.然后让其他的从数据 ...

  5. Redis主从复制、哨兵机制

    一.主从架构 在Redis中,用户可以通过执行SALVEOF命令或者设置salveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对 ...

  6. redis 系列24 哨兵Sentinel (中)

    四. 检测下线状态 对于Redis的Sentinel中关于下线有两个不同的概念:(1)主观下线(Subjectively Down, 简称 Sdown) 指的是单个 Sentinel 实例对服务器做出 ...

  7. Redis中的哨兵机制的不足

    主从切换的过程中会丢失数据,因为只有一个master. 只能单点写,没有解决水平扩容的问题. 如果数据量非常大,这个时候我们需要多个master-slave 的group,把数据分布到不同的group ...

  8. docker redis 配置文件_基于Docker搭建Redis一主两从三哨兵

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:oscarwin juejin.im/post/5d26b03de51d454fa3 ...

  9. Redis的哨兵机制你知道多少撒

    ​有眼光啊,这么多文章你点开了我,缘分,如果我没猜错的话,你是个有梦想的人,是个热爱技术的人,我们一起 手牵手撒 ?(暗示关注~~) 捞一下前面的Redis文章,这是一个系列啊,后续还会出更多Redi ...

最新文章

  1. python中字符串单引号、双引号、三引号_Python:字符串单引号(‘)、双引号(“)、三单引号(”’)和三双引号(“””)的区别...
  2. U深度利用iso文件制作U盘启动盘
  3. MyBtis快速入门
  4. boost::python::converter::as_to_python_function相关的测试程序
  5. SIGMOD回顾:数据库国际大咖组团来阿里,他们都说了啥?
  6. 自然语言处理中的模式(模式0:模式无处不在模式)
  7. mongodb分片概念和原理-实战分片集群
  8. js 图片库 改进版
  9. python操作excel常用的方法
  10. 2005.2.21 至 2005.8.8
  11. python运维处理序列_Python运维开发:02 序列
  12. java的for循环取出数据只是拿到最后一个_从MySQL中导数据到HBase
  13. 求1+2阶乘+3阶乘+ 省略 +20阶乘的和
  14. html桌面插件,纯JS和CSS3炫酷桌面便签贴纸特效插件
  15. 系统背景描述_多元化多功能会议室报告厅智能控制系统方案
  16. matlab 取符号函数,Matlab 符号表达式和符号函数的操作
  17. 剖析虚幻渲染体系(15)- XR专题
  18. 倒写的乘法口诀表用c语言表示,乘法口诀表,C语言实现
  19. 不能错过!9个让你随时保持精力充沛的习惯
  20. 匠心铸梦 敏涵控股集团打造民族领军品牌

热门文章

  1. 用启动盘点击修复计算机没有反应,如何修复并还原故障/没有反应SSD固态硬盘...
  2. 2015年电视游戏大厅将逐一死掉?
  3. MyBatis-plus报错:Error evaluating expression ‘ew.sqlSegment != null
  4. 实现两个矩阵的加减乘除和转置。
  5. 《先知·哀乐》《先知·苦痛》
  6. 被讨厌的勇气:“自我启发之父”阿德勒的哲学课
  7. java 水仙花数_如何理解Java中的水仙花数?
  8. 对抗生成网络学习(七)——SRGAN生成超分辨率影像(tensorflow实现)
  9. 四川发展供应链金融的三个建议及对策
  10. 在公司,有些建议不能提