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

MySQL MVCC的快照读和当前读区别,Redis的RDB+AOF混合持久化流程。

MySQL MVCC 的快照读和当前读区别

快照读 (Snapshot Read)

  • 定义: 读取数据的历史版本(快照),基于 MVCC(多版本并发控制)实现。
  • 特点:
    • 不加锁,非阻塞读。
    • 返回事务开始时的快照数据,确保一致性。
    • 依赖 Undo Log 和版本链。
  • 适用场景: 普通的 SELECT 查询。
  • 示例:
SELECT * FROM user WHERE id = 1;
  • 隔离级别: Read Committed(读已提交) 和 Repeatable Read(可重复读) 中常用。

当前读 (Current Read)

  • 定义: 读取数据的最新版本,通常涉及加锁。
  • 特点:
    • 加锁操作,保证数据一致性。
    • 返回最新提交的数据。
    • 使用行锁、间隙锁等机制。
  • 适用场景: 加锁查询或写操作(如 UPDATE、DELETE)。
  • 示例:
SELECT * FROM user WHERE id = 1 FOR UPDATE;  -- 排他锁
UPDATE user SET name = 'Tom' WHERE id = 1;
  • 隔离级别: 适用于所有隔离级别。

主要区别

特性快照读当前读
数据版本历史快照最新数据
是否加锁不加锁加锁
实现方式MVCC + Undo Log锁 + 最新数据
示例普通 SELECT加锁 SELECT, DML

Redis RDB + AOF 混合持久化流程

  • Redis 在 4.0 版本引入了 RDB 和 AOF 的混合持久化,结合 RDB 的快速恢复和 AOF 的数据完整性。以下是流程:

1. 开启混合持久化

  • 配置:
# conf
 aof-use-rdb-preamble yes  # 启用混合持久化

2. 数据写入

  • 客户端写命令(如 SET、DEL)被记录到 AOF 缓冲区。

3. 触发重写

  • 手动触发: BGREWRITEAOF 命令。
  • 自动触发: 根据 AOF 文件大小增长规则。

4. 混合持久化过程

  1. 生成 RDB 快照:
    • 子进程将当前内存数据生成 RDB 文件。
  2. 写入 AOF 文件:
    • 将 RDB 快照写入新 AOF 文件的开头。
  3. 追加增量命令:
    • 子进程生成快照期间,主进程缓冲写命令。
    • 快照完成后,将缓冲区的命令以 AOF 格式追加到文件。
  4. 替换旧文件:
    • 新 AOF 文件(RDB + AOF 增量)原子替换旧文件。

5. 数据恢复

  • 重启时:
    1. 加载 AOF 文件中的 RDB 部分,快速恢复内存。
    2. 执行后续 AOF 命令,补齐增量变更。

配置示例

# conf
save 900 1           # RDB 触发条件
appendonly yes       # 启用 AOF
aof-use-rdb-preamble yes  # 混合持久化

优点

  • RDB: 文件小,恢复快。
  • AOF: 数据丢失少。
  • 混合: 兼顾速度和完整性。

总结

  • MySQL MVCC:
    • 快照读:历史数据,无锁。
    • 当前读:最新数据,加锁。
  • Redis 混合持久化:
    • RDB 提供初始快照,AOF 追加增量,子进程重写,原子替换。

相关文章:

  • 用SVG绕过浏览器XSS审计
  • Axure项目实战:智慧城市APP(五)新闻资讯、就业信息(动态面板)
  • 微调0.5 B-32B模型要达到85%的准确率需要的数据和资源-会话质检和会话小结
  • 比手动备份快 Iperius全自动加密备份,NAS/云盘/磁带机全兼容
  • MagicFlow-防火墙网关-任意文件读取漏洞
  • 如何面对自己有意识和无意识的逃避(一)
  • c++R 格式
  • 超融合服务器是什么
  • python中使用openssl构建root证书,CSR,并验证
  • Go 语言 fmt 模块的完整方法详解及示例
  • 标星 62.9 万,8 个 yyds 的 GitHub 开源项目 !
  • C++中的std::move函数详解:移动语义与资源管理
  • golang结构体与指针类型
  • ARM day2
  • protobuf为什么快
  • 基于ssm的微博网站(全套)
  • 流量分析2
  • VectorBT:使用PyTorch+LSTM训练和回测股票模型 进阶二
  • 核心知识——论文详解
  • 力扣DAY27 | 热100 | 合并两个有序链表
  • 公示资费套餐、规范营销行为,今年信息通信行业将办好这十件实事
  • 武康大楼再开发:一栋楼火还不够,要带火街区“朋友圈”
  • 霍步刚任辽宁沈阳市委书记
  • 外交部部长助理兼礼宾司司长洪磊接受美国新任驻华大使递交国书副本
  • 350种咖啡主题图书集结上海,20家参展书店买书送咖啡
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后