一.实战

1./myredis目录下放sentinel.conf文件

1) sentinel26379.conf

2) sentinel26380.conf

3) sentinel26381.conf

2.重点参数说明

bind 0.0.0.0               #服务监听位置
daemonize yes          #后台运行
protected-mode no    #安全保护模式
port 26379                 #端口
logfile "/myredis/26379.log"        #日志文件路径
pidfile /var/run/redis_26379.pid  #pid文件路径
dir /myredis                                 #工作目录

#设置要监控的master服务器,

#quorum 表示最少有几个哨兵认可客观下线同意故障迁移的法定票数
sentinel monitor mymaster 192.168.3.128 6379 2 
sentinel auth-pass mymaster 111111 #redisd的密码

其他参数

sentinel auth-user <master-name> <username>

#指定多少毫秒之后,主节点没有答应哨兵,此时哨兵主观上认为主节点下线

sentinel down-after-milliseconds mymaster 30000

#允许并同步的slave个数,当Master挂了后,哨兵会选出新的Master

sentinel parallel-syncs mymaster 1

#故障转移的超时时间,超出设置的毫秒,表示故障转移失败

sentinel failover-timeout mymaster 180000

#配置当莫一事件发生时所需要执行的脚本

sentinel notification-script mymaster /var/redis/notify.sh

#客户端重新配置主节点参数脚本

sentinel client-reconfig-script mymaster /var/redis/reconfig.sh

3.通用配置

1) sentinel26379.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
logfile "/myredis/26379.log"
pidfile /var/run/redis_26379.pid
dir /myredis
sentinel monitor mymaster 192.168.3.128 6379 2
sentinel auth-pass mymaster 111111

2) sentinel26380.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26380
logfile "/myredis/26380.log"
pidfile /var/run/redis_26380.pid
dir /myredis
sentinel monitor mymaster 192.168.3.128 6379 2
sentinel auth-pass mymaster 111111

3) sentinel26381.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26381
logfile "/myredis/26381.log"
pidfile /var/run/redis_26381.pid
dir /myredis
sentinel monitor mymaster 192.168.3.128 6379 2
sentinel auth-pass mymaster 111111

4.先启动一主二从redis

查看 https://mp.csdn.net/mp_blog/creation/editor/129999647

5.启动3个哨兵

1) redis-sentinel /path/to/sentinel.conf或者redis-server /path/to/sentinel.conf --sentinel

2) 实际,cd 到/myredis

redis-sentinel sentinel26379.conf --sentinel

redis-sentinel sentinel26380.conf --sentinel

redis-sentinel sentinel26381.conf --sentinel

6.测试主从复制

1) 在主中set k1 111111

2) 在从机get k1 查看是否有数据

3) 在哨兵机中 ps -ef | grep redis

7.原有的master挂了

1) redis-cli -a 111111 -p 6379 shutdown

2) 两台从机数据是否完整

3) 是否从剩下2台机器上选出新的master

4) 之前的master机器重启回来谁会是master

二.运行流程和选举原理

1) 当三个哨兵ping主机,都超过了down-after-milliseconds的值30秒,才能判断主机挂到了

2) 根据Raft算法(先到先得)选举出领导哨兵

2) 由领导哨兵进行故障迁移选出master,算法是:

slave-priority或者replica-priority值越小级别越高,如果priority值相同,就判断offset

replication offset 值越大级别越高, 如果offset 值相同,就判断run id

Run ID     ASCII值越小级别越高

3) slave no one 可以使从节点独立出来,并同过slaveof让其他节点成为器

三.使用建议

6.redis-哨兵相关推荐

  1. springboot配置Redis哨兵主从服务 以及 Redis 集群

    redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从 ...

  2. 【带你重拾Redis】Redis 哨兵集群实现高可用

    Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 Redis 集群架构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 Redis master 和 sla ...

  3. Redis 哨兵架构基础

    点击赠书:聊聊「分布式架构」那些事儿 1. 哨兵的介绍 sentinel , 中文是哨兵. 哨兵是redis 集群架构中非常重要的一个组件,主要功能如下: (1)集群监控:负责监控reidis mas ...

  4. k8s redis集群_基于K8S部署redis哨兵集群

    本 文 主 要 内 容 什么是Kubernetes分布式容器管理平台 PaaS平台redis-sentinel集群架构简介 PaaS平台部署redis哨兵集群 redis-sentinel容器测试及验 ...

  5. java 什么是哨兵_Java中的Redis 哨兵高可用性

    让我们探索Redis Sentinel,看看如何在Java上运行它,一起来看看,最近get了很多新知识,分享给大家参考学习.需要详细的java架构思维导图路线也可以评论获取! 什么是Redis哨兵? ...

  6. redis哨兵模式没有切换主机_Redis的哨兵模式

    微信公众号:51码农网 网站:http://www.51manong.com51码农网,让程序员的坚持学习变得可能 Redis哨兵(Sentinel)模式 Redis的主从复制,当主机出现了宕机时,需 ...

  7. jedispool redis哨兵_通过java哨兵JedisSentinelPool代码示例连接对配置的redis哨兵主从模式进行测试验证...

    一.前言 本文章通过关于java的jedis(2.6.0)的redis客户端连接驱动包,对配置的redis哨兵+主从读写模式配置进行示例代码验证,详细参见具体配置步骤&示例代码说明部分. 二. ...

  8. Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

    前一篇文章高并发架构系列:Redis为什么是单线程.及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了. 谈到 ...

  9. redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...

    Redis如何保证高并发,高可用? 高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求 ...

  10. redis哨兵模式没有切换主机_Redis哨兵(Sentinel)模式

    Redis哨兵(Sentinel)模式 在这里插入图片描述 一.主从复制高可用 当我们使用主从复制出现的问题 手动故障转移 写能力和存储能力受限 主从复制 -master 宕机故障处理 主从切换技术的 ...

最新文章

  1. 小朋友也能看懂的机器学习
  2. 解决ubuntu打开windows中txt文件出现乱码现象
  3. multi agent system university of liverpool professional presentation
  4. HTML5培训分享:HTML5全栈工程师是什么?
  5. Mysql迁移到Oracle方法
  6. robo 3t连接_使用robo 3t studio 3t连接到地图集
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]46.Sigma协议正确性、公正性和零知识性
  8. 整理一下var和函数function的一些小知识点
  9. NodeMCU-ESP8266开发(VSCODE+PlatformIO+Arduino框架):第3篇--Blinker_MIOT_LIGHT(点灯科技APP控制+小爱同学控制)
  10. centos7校正系统时间
  11. 固态硬盘linux提升,固态硬盘在Linux系统下提升使用率妙方
  12. 华为2020软件精英挑战赛初赛、复赛、决赛代码+心得分享
  13. Conflict with dependency com.android.support-annotations' in project':app'.Resolved ...解决方法
  14. 有 50 家人家,每家一条狗。有一天警察通知, 50 条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别 人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天
  15. kaggle数分项目 | netfix影视内容分析
  16. 关于在Opengl中先平移后旋转和先旋转后平移的效果不一样的原因
  17. Jenkins免密码登录
  18. android 闪烁效果,Android 微光闪烁效果之更强Shimmer-android
  19. IEC 60601-2-36:2014 Medical electrical equipment - Part 2-36:Particular requirements for the basic
  20. OpenCV3之——图像对比度,亮度调整

热门文章

  1. [计算机网络][内容梳理]一、计算机网络概述
  2. STM32开发实例 基于STM32单片机的炼钢厂环境检测
  3. 【Shiro】shiro的Session管理
  4. CSS之盒子的边距塌陷(兄弟、父子)与解决方案
  5. React 下一代数据流 hox vs Recoil 使用对比分析
  6. Oracle 中用 update 语句更新date, timestamp字段的格式
  7. git连接远程仓库以及常用命令
  8. 数据挖掘02-特征工程良好特征的特点
  9. mysql数据库之ddl语句盘点
  10. SGI STL allocator