【Redis 干货领域】从底层彻底吃透 AOF 重写 (原理篇)

每日一句
不要轻易去依赖一个人,它会成为你的习惯,当分别来临,你失去的不是某个人,而是你精神的支柱。无论何时何地,都要学会独立行走,它会让你走得更坦然些。

前提介绍
为了保证缓存数据的完整性和可靠性,Redis 提供两种持久化机制:

  • RDB: 将数据库的快照以二进制的方式保存到磁盘;

  • AOF: 将所有写入命令及相关参数以协议文本的方式写入文件并持久保存磁盘;

本文只关心 AOF,Redis Server 将所有写入的命令转换成 RESP 协议文本的方式写入 AOF 文件。

AOF 的实现
Redis 的 AOF 是类似于 log 的机制,每次写操作都会写到硬盘上,当系统崩溃时,可以通过 AOF 来恢复数据。每个带有写操作的命令被 Redis 服务器端收到运行时,该命令都会被记录到 AOF 文件上。由于只是一个 append 到文件操作,所以写到硬盘上的操作往往非常快。

其实 Redis AOF 机制包括了两件事, Rewrite 和 AOF,因为 AOF 主要采用的方式属于 Append Of File 的方式追加是文档存储, 本质内容暂时不考虑,本章重点内容是 Rewrite 机制 。

AOF 执行案例
Redis Server 收到 set key value 的的写入命令,Redis server 会进行以下几步操作:

  • 将命令转换成协议文本,转换后的结果:
<code data-type="codeline">*3</code><code data-type="codeline">$3</code><code data-type="codeline">SET</code><code data-type="codeline">$3</code><code data-type="codeline">KEY</code><code data-type="codeline">$5</code><code data-type="codeline">VALUE</code>

复制代码

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值