Redis持久化——AOF
Redis持久化——AOF
什么是AOF?
AOF(Append Only File)日志文件追加:将对Redis的所有写和删除操作追加到日志文件中,不记录读的操作,在数据恢复时将日志文件中所有的操作执行一遍。
持久化流程
以日志的形式来记录每个写操作,将Redis执行过的所有写指令和删除指令记录下来(读操作不记录),只许追加文件但不可改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
详细配置
appendonly no # 默认不开启aof持久化
appendfilename "appendonly.aof" # aof持久化追加的文件名,可以vim打开编辑
# appendfsync always # 每次操作都追加
appendfsync everysec # 每秒都追加
# appendfsync no # 不追加
no-appendfsync-on-rewrite no # 重写的时候不同步追加
auto-aof-rewrite-percentage 100 # 文件大小超过上一个文件大小的百分比就重写
auto-aof-rewrite-min-size 64mb # 文件大小超过64m就写入新文件
aof-load-truncated yes # 文件有损坏也加载
优缺点对比
优点:
最多损失一秒的操作,相对rdb方式数据完整性更高
文件损坏后只丢失少量损坏的数据
缺点:
aof文件大小比rdb文件大小大得多,并且数据恢复加载的耗时更长
aof方式需要后台不不断进行IO操作
小结
AOF是一种在日志文件中记录所有写操作和删除操作的文件追加的持久化方法,redis默认不开启