
1.前言
在redis中为了保证redis的高可用,一般会搭建一种集群模式就是主从模式。
主从模式可以保证redis的高可用,那么redis是怎么保证主从服务器的数据一致性的,接下来我们浅谈下redis主(master)从(sl*e)同步的原理。
2.初次全量同步
当一个redis服务器初次向主服务器发送salveof命令时,redis从服务器会进行一次全量同步,同步的步骤如下图所示:

sl*e服务器向master发送psync命令(此时发送的是psync ? -1),告诉master我需要同步数据了。master接收到psync命令后会进行BGS*E命令生成RDB文件快照。生成完后,会将RDB文件发送给sl*e。sl*e接收到文件会载入RDB快照,并且将数据库状态变更为master在执行BGS*E时的状态一致。master会发送保存在缓冲区里的所有写命令,告诉sl*e可以进行同步了sl*e执行这些写命令。
3.命令传播
sl*e已经同步过master了,那么如果后续master进行了写操作,比如说一个简单的set name redis,那么master执行过当前命令后,会将当前命令发送给sl*e执行一遍,达成数据一致性。
4.重新复制
当sl*e断开重连之后会进行重新同步,重新同步分完全同步和部分同步
首先来看看部分同步大致的走向

- 当sl*e断开重连后,会发送psync 命令给master。
- master收到psync后会返回+continue回复,表示sl*e可以执行部分同步了。
- master发送断线后的写命令给sl*e
- sl*e执行写命令。
实际上当sl*e发送psync命令给master之后,master还需要根据以下三点判断是否进行部分同步。
先来介绍一下是哪三个方面:
云枫企业网站源代码第三版1.0
云枫工作室企业网站Version3.0是由云枫工作室独立开发的一个适用于普通企业的网站展示系统.系统环境:asp+access(注:网站风格是与其它版本不相同的,并不是其它版本的升级版)网站功能主要有新闻管理系统、信息管理系统、产品管理系统、人才招聘管理、友情链接管理、通讯信息管理、留言信息管理使用步骤1、把网站源代码拷贝到服务器空间的根目录下。(注:服务器空间需支持ASP脚本运行)2、网站后台地
0
查看详情
每个redis服务器开启后会生成运行ID。
当进行初次同步时,master会将自己的ID告诉sl*e,sl*e会记录下来,当sl*e断线重连后,发现ID是这个master的就会尝试进行部分重同步。当ID与现在连接的master不一样时会进行完整重同步。
复制偏移量包括master复制偏移量和sl*e复制偏移量,当初次同步过后两个数据库的复制偏移量相同,之后master执行一次写命令,那么master的偏移量+1,master将写命令给sl*e,sl*e执行一次,sl*e偏移量+1,这样版本就能一致。
复制积压缓冲区是由master维护的固定长度的先进先出的队列。
当sl*e发送psync,会将自己的偏移量也发送给master,当sl*e的偏移量之后的数据在缓冲区还存在,就会返回+continue通知sl*e进行部分重同步。
当sl*e的偏移量之后的数据不在缓冲区了,就会进行完整重同步。
结合以上三点,我们又可以总结下:
- 当sl*e断开重连后,会发送psync 命令给master。
- master首先会对服务器运行id进行判断,如果与自己相同就进行判断偏移量
- master会判断自己的偏移量与sl*e的偏移量是否一致。
- 如果不一致,master会去缓冲区中判断sl*e的偏移量之后的数据是否存在。
- 如果存在就会返回+continue回复,表示sl*e可以执行部分同步了。
- master发送断线后的写命令给sl*e
- sl*e执行写命令。
5.主从同步最终流程

6.结语
最近公司需要,我搭建了一套redis主从集群并且用哨兵进行监听实现主从切换。因此我根据《redis设计与实现》梳理了redis主从原理,给自己加深印象。
推荐教程: 《redis教程》
以上就是redis主从同步原理的详细内容,更多请关注其它相关文章!
# 偏移量
# 管理系统
# 第三版
# 会将
# 后会
# 在这里
# 源代码
# 企业网站
# 自己的
# 就会
# redis主从同步原理
# 宁夏怎么优化关键词排名
# 关键词排名优化哪里不错
# 新媒体营销推广训练课程
# 泉州seo数据分析
# 互联网引流推广学习网站
# 孟州网站推广方案
# 辽宁省城乡建设厅网站
# 汤阴网站推广公司
# 提供网站建设详细方案
# 淘宝关键词排名展现
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
钉钉任务无法提醒如何处理 钉钉任务提醒优化方法
Go语言中方法接收器的选择:值类型还是指针类型?
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
byrutor直接访问入口 byrutor官方游戏库
Excel如何制作月度销售统计图_Excel动态图表制作与控件应用
优化 React onClick 事件处理:函数引用与箭头函数的对比
手机雨课堂网页版入口免登录 雨课堂网页版可点击直接进入
谷歌学术论文搜索引擎 谷歌学术官网入口论坛永久链接
PHP 4 函数中引用参数的默认值限制与解决方案
Windows 11怎么删除恢复分区_Windows 11使用Diskpart命令强行删除分区
Keras中Convolution2D层及其核心辅助层详解
苹果手机如何清理系统缓存数据 iPhone非越狱清理垃圾文件的技巧【系统优化】
电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】
《海豚家》注销账号方法
《鹿路通》退余额方法
晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制
windows10怎么设置电源按钮_windows10按下电源键功能修改
《波斯王子:失落的王冠》剑术大师打法攻略
《荔枝fm》导出文件教程
京东物流快递破损了怎么办_京东快递破损理赔流程
Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合
Animex动漫社正版在线入口 Animex动漫社动漫官方观看网
TikTok搜索结果不显示怎么办 TikTok搜索刷新与优化方法
win11关机几秒又自己开机 Win11关机自动重启问题修复
天天漫画2025最新入口 天天漫画永久有效登录入口
J*aScript文本高亮功能优化:解决多词匹配错误与精确分割策略
抖音号升级企业号怎么改名字?升级企业号有哪些好处?
《宝可梦大集结》S4冠军之路开始时间介绍
偃武诸葛亮阵容搭配推荐
RxJS中如何高效地在一个函数内处理和合并多个数据集合
在VS Code中利用AI辅助进行代码迁移
C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较
漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享
Python项目中的条件导入:解决跨模块依赖问题
苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程
163邮箱登录入口官网 163.com邮箱登录入口
《美篇》取消会员自动续费方法
金牛福袋获取攻略
百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法
《伊瑟》凶影追缉库卢鲁boss攻略
有道AI翻译入口 智能写作官方网站入口
掌握产品代码正则表达式:避免常见陷阱与精确匹配
画质怪兽120帧安卓和平精英免费版
yandex网页版直接登录 yandex官方入口平台访问方法
Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题
《oppo商城》维修服务位置
汽水音乐网页版登录 汽水音乐网页端官方入口
掌握Go App Engine项目结构与GOPATH:包管理与导入实践
t3出行如何使用微信支付
如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签
2020-06-22
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。