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

AAA Mysql与redis的主从复制原理

一 :Mysql主从复制

重要的两个日志文件:bin log 和 relay log

bin log:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。

relay log:用来保存从节点I/O线程接受的bin log日志,作为中继日志存在

(1) 从节点执行 start salve,开启主从复制

(2) 主节点binlog 发送给从节点,从节点会将bin log追加到relay log后面,并保存bin log的位置,以便下次从这个位置开始获取后续的内容

(3)  relay log内容解析成sql,然后依次执行sql,实现数据同步

二 :主从复制的工作模式

异步复制

mysql默认复制模式,当主节点将数据写到binlog之后,并提交事务,就立即返回结果给客户端,并不关注更新bin log有没有同步到从节点

半同步复制

相对于异步复制,增加了等待从节点成功提交事务的逻辑,但是并不是等待所有从节点提交事务,而是只要有一个从节点提交事务,则返回客户端结果。

全同步

这就很好理解了,就是在半同步的基础上,增加了等待所有从节点都成功写入数据,才返回结果给客户端

三 :binlog 数据存储格式

binlog日志文件是二进制的,直接打开是乱码
1、statement格式
保存执行的sql语句,但是如果语句中有随机数,会造成主从同步数据不一致
2、row
每次操作保存受影响的行,以及怎么变化。但是会产生大量的日志,比较浪费存储空间

3、mixed
如果语句中没有随机数等,就保存sql语句,否则保存为row格式

四:Redis主从复制

第一步:申请同步请求

  • 从节点与主节点建立 TCP 连接,并正式请求同步数据,发送 PSYNC ? -1。
  • 主节点接收到请求后,向从节点回复 FULLRESYNC runid offset ,做好开始传输 RDB 数据的准备。

第二步: RDB 文件同步

  • 主节点执行 bgsave 命令,生成当前数据的快照—也就是 RDB 文件。
  • 主节点随后将这个 RDB 文件传输给从节点。
  • 从节点收到 RDB 文件后,开始加载到自己的数据库中。

第三步 : 复制缓存区命令同步

  • 之后,每当主节点有新的写命令,它都会立即传输给从节点并同时将新命令追加到复制缓冲区中。
  • 从节点持续接收并执行这些命令,确保与主节点的数据始终保持同步

参考文档:

https://zhuanlan.zhihu.com/p/686074142  彻底搞懂MySQL主从复制工作原理 2+3+3+4-腾讯云开发者社区-腾讯云

http://www.lryc.cn/news/457477.html

相关文章:

  • 结合大语言模型的机械臂抓取操作学习
  • 数据结构-二叉树_堆
  • Vscode+Pycharm+Vue.js+WEUI+django火锅(三)理解Vue
  • 溯变:守护天使 | OPENAIGC开发者大赛企业组优秀作品
  • android中byte[] buf没有结束符,new String(buf)会不会出错?
  • 鸿蒙harmonyos next flutter混合开发之开发plugin(获取操作系统版本号)
  • 介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
  • 【大模型】AI数据基础设施的对象存储
  • 【前端工程解耦】使用事件中心实现系统解耦,注册,触发,删除事件
  • 计算机网络803-(4)网络层
  • java速成指南
  • 【Unity】双摄像机叠加渲染
  • web网页项目--用户登录,注册页面代码
  • 国外火出圈儿的PM御用AI编程工具Bolt.new效果干不过国产的CodeFlying?号称全新定义全栈开发流程?
  • 爸妈总说着学门技术,学机器视觉技术确实是一条踏实的生活道路,这条路你走得下去走得通吗?
  • 2024互联网下载神器IDM6.42你值得拥有
  • 基于H3C环境的实验——OSPF
  • java线程池详解
  • 五、创建型(建造者模式)
  • CPU超线程技术是什么,怎么启用超线程技术
  • vba学习系列(7)--考勤表制作
  • Java学习第九天
  • 【算法系列-链表】链表相交 环形链表II
  • 使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务
  • 【VUE】双端比较算法
  • 跨界的胜利:机器学习与神经网络的物理之光
  • 容器化技术:Docker的基本概念和使用
  • EcoVadis认证内容有哪些?EcoVadis认证申请流程?
  • Windows 搭建 Gitea
  • 嵌入式面试——FreeRTOS篇(五) 事件标志组