当前位置: 首页 > news >正文

Redis主从集群-主从复制(通俗易懂)

为什么要搭建主从集群?

单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,可以搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据,主节点写入数据之后,需要把数据同步到从节点中。

主从复制原理是什么?

主从复制共有三种模式:全量复制、基于长连接的命令传播、增量复制。

全量同步

从节点向主节点请求数据,主节点判断是第一次请求(这里是通过replid判断,不一致),同步版本信息(可以理解为从节点要继承主节点的replid,使其一致),同时执行bgsave,生成rdb,发送给从节点,在rdb生成期间,由于是异步的,主节点redis仍然会正常处理业务,为了避免新增加的数据没有同步给从节点,主节点将收到的写操作命令,写入到 replication buffer 缓冲区里,在从节点解析执行完rdb文件之后,它告诉一下主节点,我执行完了,主节点就把这个缓冲文件发给他,保证数据的一致性。

PS: replication buffer 缓冲区:目的主要就是给从节点发送要同步的数据。

基于长连接的命令传播:

主从服务器在完成全量同步之后,双方之间就会维护一个 TCP 长连接,通过连接继续将写操作命令传播给从服务器,来保证第一次同步后的主从服务器的数据一致性。

增量复制:

由于网络总是爱发脾气,说断开就断开,由于全量同步耗时间,增量同步的出现解决了这个问题。当网络恢复后,主节点会判断这不是第一次请求,告诉从节点,我想增量同步,你做好准备,然后主节点将断线期间所有的更新数据都发送给从节点。他的实现逻辑是靠一个:一个环形的缓冲区(repl_backlog_size ),主节点进行传播指令给从节点的时候,也会指令写在这个缓冲区,所以这个缓冲区里会保存着最近传播的写命令,通过主的写偏移量和从的读偏移量来获取断线期间的要同步的数据,当然如果从服务器判断要读的数据在这个环形缓冲区没有,就会开启全量同步,同时由于这个缓冲区是环形,也会造成数据的覆盖,所以我们要合理的设置该大小,尽量避免全量复制。

相关文章:

  • electron入门教程
  • LeetCode 1365. 有多少小于当前数字的数字
  • fastjson list转json
  • 用TOMCAT部署web项目教程
  • JavaScript权威指南(第7版) 笔记 - 扩展操作符总结
  • 小林coding图解计算机网络|TCP篇06|如何理解TCP面向字节流协议、为什么UDP是面向报文的协议、如何解决TCP的粘包问题?
  • 律所如何做好内容运营,提升品牌影响力
  • 数据生成 | Matlab实现基于DE差分进化算法的数据生成
  • vue + koa + Sequelize + 阿里云部署 + 宝塔:宝塔数据库连接
  • OpenCV中的模块:三维重建-SFM(1)
  • 设计模式 --5观察者模式
  • 威胁建模与网络安全测试方法
  • Android adb 常用命令
  • mysql的一些基本操作
  • Oracle 使用维进行查询重写
  • docker python 配置
  • Linux后台研发超实用命令总结
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • node-glob通配符
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Web标准制定过程
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 一个SAP顾问在美国的这些年
  • 用mpvue开发微信小程序
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​插件化DPI在商用WIFI中的价值
  • ​批处理文件中的errorlevel用法
  • ###STL(标准模板库)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (42)STM32——LCD显示屏实验笔记
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)shell调试方法
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net CHARTING图表控件下载地址
  • .NET DataGridView数据绑定说明
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET单元测试
  • .NET使用存储过程实现对数据库的增删改查
  • .net下简单快捷的数值高低位切换
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • []C/C++读取串口接收到的数据程序
  • [22]. 括号生成
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [AR]Vumark(下一代条形码)
  • [ARC066F]Contest with Drinks Hard
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C++]C++类基本语法
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!