AOF 保存的命令

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 持续学习,不断总结,共同进步,活到老学到老
  • 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
  • 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
  • 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

16.AOF 保存的命令

AOF 保存的命令:

  • 对键值对的修改命令
  • PUBSUB 命令
  • SCRIPT LOAD 命令

AOF 工作原理:

  • AOF 重写和 rdb 创建快照一样,都是巧妙的利用了写时复制机制。

  • redis 调用 fork ,现在有父子两个进程。

  • 根据内存中的数据库快照,往临时文件中写入重建数据库状态的命令。

  • 父进程继续处理 client 请求,除了把写命令写入到原来的 aof 文件中。同时把收到的写命令缓存起来。这样就能保证如果子进程重写失败的话并不会出问题。

  • 子进程把快照内容以命令方式写到临时文件中后,子进程发信号通知父进程。然后父进程把缓存的写命令也写入到临时文件

  • 现在父进程可以使用临时文件替换老的 aof 文件,并重命名,后面收到的写命令也开始往新的 aof 文件中追加。

17.AOF 后台重写

BGREWRITEAOF 函数实现原理

aof_rewrite 函数的缺点:AOF 重写程序 aof_rewrite 函数可以很好地完成创建一个新 AOF 文件的任务, 但是,因为这个函数会进行大量的写入操作,所以调用这个函数的线程将被长时间阻塞,因为 Redis 服务器使用单个线程来处理命令请求,所以如果由服务器直接调用 aof_rewrite 函数的话,那么在重写 AOF 文件期间,服务期将无法处理客户端发来的命令请求。

很明显,作为一种辅佐性的维护手段,Redis 不希望 AOF 重写造成服务器无法处理请求, 所以 Redis 决定将 AOF 重写程序放到子进程里执行,这样做可以同时达到两个目的:

  • 子进程进行 AOF 重写期间,服务器进程(父进程)可以继续处理命令请求
  • 子进程带有服务器进程的数据副本,使用子进程而不是线程,可以在避免使用锁的情况 下,保证数据的安全性

image-20220913002434231

18.AOF 对过期处理

当服务器以 AOF 持久化模式运行时,如果数据库中的某个键已经过期,但它还没有被惰性删除或者定期删除,那么 AOF 文件不会因头这个过期键而产生任何影响。

当过期键被惰性删除或者定期删除之后,程序会向 AOF 文件追加(append)一条 DEL 命令,来显式地记录该键已被删除。

19.RDB 和 AOF 选择

redis 使用了 2 种方式进行持久化:

  • Snapshotting(快照 RDB,默认方式):能够在指定的时间间隔对你的操作进程快照存储
  • Append-only file(缩写 aof):记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始的数据

RDBAOF 兼容性:

  • 默认情况下,Redis 将数据库快照保存在一个 dump.rdb二进制文件中。

  • 如果服务器开启了 AOF 持久化功能,那么服务器会优先使用 AOF 文件来还原数据库状态。

  • 只有在 AOF 持久化功能处于关闭状态时,服务器才会使用 RDB 文件来还原数据库状态。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

  • 33
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值