redis aof数据持久化
AOF(Append Only File)
将我们所有的命令都记录下来,history,恢复的时候就把这个文件全部再执行一遍!
是什么
以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该重新构建数据,换言之,redis重启的话就会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作.
Aof保存的是appendonly.aof文件
append
指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no:关闭, 开启改为yes,重启redis就可以生效了.
appendonly no
持久化配置策略:
appendfilename appendonly.aof #指定更新日志文件名,默认为appendonly.aof
# appendfsync 指定更新日志条件,共有3个可选值:
# appendfsync always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全),每次更新都会去修改
appendfsync everysec:表示每秒同步一次(折衷,默认值)
# appendfsync no:表示等操作系统进行数据缓存同步到磁盘(快),不修改.
优点和缺点
优点:
1.每一次修改都同步,文件的完整会更加好!
2.每秒同步一次,可能会丢失一秒的数据!
3.从不同步,效率最高的!
缺点:
1.相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢!
2.aof运行效率也要比rdb慢,所以我们redis默认的配置就是rdb持久化!
如果这个aof文件有错位,这时候redis是启动不起来的.我们需要修复这个aof文件.
redis给我们提供了一个工具redis-check-aof --fix
修复
如果文件正常,重启就可以直接恢复了!
重写规则说明
aof默认就是文件的无限追加,文件会越来越大!
如果aof文件大于64m,太大了!就会fork一个新的进程来将我们的文件进行重写!
扩展
[Haima的博客]
http://www.cnblogs.com/haima/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构