redis 主从复制的作用中有这么一句话“主从复制是高可用的基石”,那什么是高可用呢?高可用就是减少系统不能提供的时间,也就是常听到的以 6 个 9 为基准 。实现高可用必不可少的就是哨兵和集群 。

文章插图
图片来自 Pexels
本文主要围绕如下几个方面介绍哨兵机制:
- 什么是哨兵
- 哨兵的作用
- 如何配置哨兵
- 哨兵工作原理
- 总结
- centos 7.3
- redis 4.0
- redis 工作目录 /usr/local/redis
- 在虚拟机进行模拟操作
先简单说几句我们在配置主从复制时有一种情况就是主节点宕机了,谁来提供服务呢?
当主节点宕机后主从复制就没有存在的意义了,数据为王的时代没有了数据何谈什么高可用 。

文章插图
这个时候就横空出世了一位老大哥名叫哨兵,老大哥说这个问题我来帮你们处理 。
既然主节点 master 作为老大不领你们玩了 。我就从你们四个中间再挑选出来一位老大,然后你们跟着他玩 。
等不带你们玩的那个老大回来后他的身份就失效了,就不再是你们的老大了 。他只能跟着我挑选出来的老大玩 。
上边这段对话过程就是我们配置哨兵的意义到底在哪,跟谁玩就是谁给谁数据,知道了哨兵的作用我们就在继续 。
最后我们用专业术语来解释一下什么是哨兵:
哨兵,英文名 Sentinel,是一个分布式系统,用于对主从结构中的每一台服务器进行监控,当主节点出现故障后通过投票机制来挑选新的主节点,并且将所有的从节点连接到新的主节点上 。
哨兵的作用
上文中我们谈到的对话过程就是哨兵的作用之一:自动故障转移 。
谈到作用肯定就是这个哨兵到底在工作中到底干了什么事情 。我们先用比较干巴的概念描述一下,然后在下文的工作原理会一一谈到 。
哨兵的三个作用:
- 监控:监控谁?支持主从结构的工作一个是主节点一个是从节点,那肯定就是监控这俩个了 。监控主节点和从节点是否正常运行;检测主节点是否存活,主节点和从节点运行情况 。
- 通知:哨兵检测的服务器出现问题时,会向其他的哨兵发送通知,哨兵之间就相当于一个微信群,每个哨兵发现的问题都会发在这个群里 。
- 自动转移故障:当检测到主节点宕机后,断开与宕机主节点连接的所有从节点,在从节点中选取一个作为主节点,然后将其他的从节点连接到这个最新主节点的上 。并且告知客户端最新的服务器地址 。
那么为什么配置哨兵服务器的数量为单数呢?带着这个疑问你会在下文看到你想要的答案 。
如何配置哨兵
准备工作
我们开始配置哨兵,开启八个客户端,三个哨兵、一个主节点、俩个从节点、一个主节点客户端、一个从节点客户端 。

文章插图
sentinel.conf 配置解读
哨兵使用的配置文件是 sentinel.conf,如下图:

文章插图
我们来对 sentinel.conf 配置信息进行解读:

文章插图
但是大多数都是注释,这里给大家提供一个命令来过滤这些无用信息:
cat sentinel.conf | grep -v '#' | grep -v '^$' 
文章插图
①port 26379:对外服务端口号 。
②dir /tmp:存储哨兵的工作信息 。
③sentinel monitor mymaster 127.0.0.1 6379 2:监控的是谁,名字可以自定义,后边的 2 代表的是,如果有俩个哨兵判断这个主节点挂了那这个主节点就挂了,通常设置为哨兵个数一半加一 。
④sentinel down-after-milliseconds mymaster 30000:哨兵连接主节点多长时间没有响应就代表挂了 。后边 30000 是毫秒,也就是 30 秒 。
⑤sentinel parallel-syncs mymaster 1:这个配置项是指在故障转移时,最多有多少个从节点对新的主节点进行同步 。
推荐阅读
- 今日头条算法原理—— 3分钟了解今日头条推荐算法原理
- 核武器原理都知道,为何很多国家倾全力也造不出,究竟难在哪里?
- 深入理解Go的interface内部执行原理
- 经常用Redis,你知道主从复制吗?
- 普洱熟茶饼和生茶,普洱生茶和普洱熟茶减肥原理不同
- Windows版 安装Redis步骤以及踩过的坑
- Hello Redis,我有7个问题想请教你
- 红外遥控原理及实现
- 搞懂这9个“烹饪原理”,让你厨艺大增,下厨做饭不求人,真实用
- 太阳能光伏发电原理及优势
