Redis 持久化之AOF操作
AOF(Append Only File)
将我们的所有命令都记录下来,相当于history,恢复的时候就吧这个文件全部命令执行一遍!
以日志的形式记录每个写操作,将Redis执行过程的所有指令记录下来,只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
Aof保存的是 appendonly.aof文件
在redis.windows.conf(windows版)中可查看配置:
默认是不开启aof的,我们需要手动进行配置!
重启redis服务
如果这个aof文件有错误,这时候redis是启动不起来,我们需要修改这个aof文件。redis给我们提供了一个工具:redis-check-aof
如果文件正常,重启就可以恢复数据了。
优点和缺点
① 优点:
- 每一次修改个都同步,文件的完整性更好。
- 每秒同步一次,可能会丢失一秒的数据
- 默认从不同步,效率更高的!
②缺点:
- 相对于数据文件来说,aof远远大于rdb,修复的速度也比r'd'b慢!
- Aof运行效率也要比rdb慢,所以redis默认的配置就是rdb持久化!
如果aof文件大于64m(aof默认大小),太大了!fork一个新的进程来将我们的文件进行重写。
扩展:
1.RDB持久化方式能够在指定的时间间隔内对你数据进行快照存储。
2.aof持久化方式记录每次对数据服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以Redistribution协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重新,使得AOF文件的体积不至于过大。
3.只做缓存,如果你只希望你的数据在服务器运行的时候存在,你也可以不是有任何持久化
4.同时开启两种持久化方式:
- 在这种情况下,当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AO发文件班车的数据集要比RDB文件保存的数据集要完整。
- RDB的数据不实时,同时使用两者时服务器重启也只会找AOF文件,那要不要只使用AOF呢?不建议,因为RDB更适合用于备份数据库,快速重启,而且不会有AOF可能潜在的Bug,留着作为一个万一的手段。
5.性能建议:
因为rdb文件只用作后备用途,建议在在sjava上持久化rdb文件,而且只要15分钟备份一次就够了,只保留sava 900 1 这条规则。
如果Enable aof,好处是在最恶情况下也只会丢失不超过两秒数据。
如果不enable aof,仅靠master-slave repllcation 实现高可用性也可以。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!