rdb/aof

本文深入探讨Redis的两种持久化方式:RDB快照和AOF日志。详细讲解save和bgsave命令的工作原理,以及RDB和AOF文件的结构与同步策略。同时,分析aofrewrite机制如何优化AOF文件,减少其大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rdb:save(阻塞),bgsave(新进程)
默认rdb,aof需手动开启(appendonly yes),手动save或bgsave或save选项触发bgsave
save选项
save 900 1
save 300 10
900秒1次修改300秒10次修改 自动bgsave

save实现:每隔100毫秒检查一次,dirty上次save/bgsave修改后次数,lastsave上次save/bgsave时间

rdb 文件结构:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

aof 记录写命令,分为命令追加(写到aof_buf缓冲区),文件写入(调用write,数据可能留在操作系统缓冲区内),文件同步(写入了磁盘)
每次事件循环结束,都要aof写入
appendfsync: always(每次事件循环同步)
everysec(每秒同步,默认)
no(操作系统决定何时同步)

aof还原数据:利用伪客户端依次读取执行命令
aof rewrite:减小aof文件大小,实现:生成子进程,直接读取数据库内容,生成命令写入新aof文件,过程中的新命令写入aof重写缓冲区,最后追加。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值