Redis04——五分钟明白Redis的哨兵模式

和所有的数据库一样,Redis也支持集群化,Redis的集群分为分布式集群和主从集群。大部分公司采取的都是主从集群。所以在本篇文章内,我们将着重介绍Redis的主从集群及哨兵机制。

由于Redis的主从同步是异步进行的,所以Redis主从集群不满足事务的一致性,同时Redis在主从网络不可用的情况下,主节点依旧可以提供服务,所以Redis主从集群满足事物的可用性。Redis只能保证数据的最终一致性

主从同步

Redis的主从同步主要是通过以下几种方式来进行同步的。

增量同步

增量同步,本质上是同步的主节点的修改指令。即Redis主节点将所有key的修改指令写入到一段定长的内存缓冲区中,然后将修改指令同步到从节点,同时从节点将指令执行情况(偏移量)反馈到主机节点,以此来进行主从同步。

注意:由于主节点的指令缓冲区是定长的,所以当缓冲区写满后,又会缓冲区起始位置开始覆盖写入新的指令。

快照同步

当某种原因(如主从网络延迟、从节点执行指令效率过低等)导致增量同步的数据不一致的时候,就需要快照同步来修复数据。快照同步首先需要将主节点上的数据进行一次bgsave,将内存数据全部持久化到磁盘,然后同过网络传输到从节点,写入从节点磁盘。从节点再使用快照加载数据,当数据加载完成后,从节点反馈给主节点,继续进行增量同步。

注意:当主节点的指令缓冲区设置过小时,会导致快照同步陷入死循环,因此主机节点的指令缓冲区一定要设置合理。

无盘复制

本质上相当于快照同步,只不过少了主节点数据写入磁盘的步骤,换成主节点内存数据直接写入从节点的磁盘,然后继续快照同步的后续操作 。

哨兵模式

什么是哨兵

在传统的Redis主从集群中,主节点一旦出现故障,需要人工介入干预,切换集群的主从节点,同时通知应用方,这无疑是无法接受的。令人高兴的是Redis从2.8版本之后,开始支持哨兵模式了,改变了传统的人肉运维方式。

哨兵的作用是什么

Sentinel(哨兵)主要负责持续监控Redis主从集群的健康,并负责实现主从集群的自动选主过程,同时将选主结果通知到客户端。

哨兵是如何完成主从集群选主的

哨兵模式.png

哨兵模式主要分为哨兵节点和数据节点(图中的Master 和 Slave节点),一次完整的选主流程如下:

1. 在该模式下,客户端首先会遍历所有的哨兵,获取主节点信息,然后连接到主节点;

2. 在主从集群内部其运转如下:

2.1. 每个哨兵节点向所有数据节点发送每十秒钟一次的ping信息;

2.2. 若一个数据节点距离最后一次ping成功的时间超过预设值,则该节点被哨兵认为是主观下线

2.3. 当Master节点被标记为主观下线时,所有哨兵节点都会以每秒一次的频率确认Master是否真的进入了主观下线;

2.4. 当超过一定数量的哨兵都确认Master进入了主观下线后,Master会被标记为客观下线

2.5. 若在此过程中Master恢复了对哨兵ping请求的响应,Master会被移除主观下线标记;

2.6. 当Master被客观下线后,哨兵会从新选择合适的从节点升级为主节点;

2.7. 新的选主完成后,将重新所有节点的主从配置文件,同时所有从节点将从新的主节点同步数据;

2.8. 若选主流程的时间超过预设值后,选主将会失败;

3. 主从集群内部选主完成后,哨兵会利用Redis是Pub/Sub(发布/订阅)功能,通知客户端重新初始化连接池,连接到新的主节点。

Redis系列推荐

Redis03——Redis是如何删除你的数据的

Redis02——Redis内存数据如何保存到磁盘

Redis01——Redis究竟支持哪些数据结构

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容