AOF的功能
一、基础概念
AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢
复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。
AOF的工作流程操作:命令写入 (append)、文件同步(sync)、文件重写(rewrite)、重启加载 (load)

流程如下:
1、所有的写入命令会追加到aof_buf(缓冲区)中
2、AOF缓冲区根据对应的 appendfsync(同步策略) 向硬盘做同步操作
- 
always的速度慢,everysec和no都很快, 
- 
always:每次有数据修改发生时都会写入AOF文件,丢失的数据最少,但是硬盘IO开销很多 
- 
everysec:每秒同步一次数据,如果Redis发生故障,可能会丢失1秒钟的数据 
- 
no:则系统控制,不可控,不知道会丢失多少数据 
3、随着AOF文件越来越大,需要定期对AOF文件进行重写,达到压缩 的目的
4、当Redis服务器重启时,可以加载AOF文件进行数据恢复
配置文件中AOF相关选项
appendonly yes # 改为yes,开启AOF功能
appendfilename "appendonly.aof" # 生成的AOF的文件名
appendfsync everysec # AOF同步的策略
no-appendfsync-on-rewrite yes # AOF重写时,是否做append的操作,yes是不做,在 rewrite 期间的 AOF 有丢失的风险
二、RDB和 AOF 各自有什么优缺点 ?
AOF 优点
1、实时性好,aof 持久化可以配置 appendfsync 属性,有 always ,每进行一次命令操作就记录到aof 文件中一次
2、通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题
AOF 缺点
1、AOF 文件比 RDB 文件大,且 恢复速度慢
2、数据集大 的时候,比 RDB 启动效率低
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号