Redis持久化-AOF方式
2020-08-15 18:02
597 查看
AOF以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令来恢复数据。AOF会先把命令追加在AOF缓冲区,然后根据对应策略写入硬盘(appendfsync)。
1、AOF触发方式
手动触发
一般是直接cmd命令操作。
使用bgrewriteaof命令:Redis主进程fork子进程来执行AOF重写,这个子进程创建新的AOF文件来存储重写结果,防止影响旧文件。因为fork采用了写时复制机制,子进程不能访问在其被创建出来之后产生的新数据。Redis使用“AOF重写缓冲区”保存这部分新数据,最后父进程将AOF重写缓冲区的数据写入新的AOF文件中然后使用新AOF文件替换老文件。
自动触发
一般是在redis.conf文件配置。
####### appendonly:是否打开AOF持久化功能 appendonly no ####### appendfilename:AOF文件名称 appendfilename "appendonly.aof" ####### appendfsync:同步频率 always:命令写入aof缓冲区后,每一次写入都需要同步,直到写入磁盘(阻塞,系统调用fsync)结束后返回。显然和Redis高性能背道而驰,不建议配置 everysec:命令写入aof缓冲区后,在写入系统缓冲区直接返回(系统调用write),然后有专门线程每秒执行写入磁盘(阻塞,系统调用fsync)后返回 no:命令写入aof缓冲区后,在写入系统缓冲区直接返回(系统调用write)。之后写入磁盘(阻塞,系统调用fsync)的操作由操作系统负责,通常最长30s appendfsync everysec no-appendfsync-on-rewrite no ####### auto-aof-rewrite-percentage:Redis记录最近的一次AOF操作的文件大小,如果当前AOF文件大小增长超过这个百分比则触发一次重写,默认100 auto-aof-rewrite-percentage 100 ####### auto-aof-rewrite-min-size:如果文件大小小于此值不会触发AOF,默认64MB auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble no
2、AOF保存过程
1)所有的append写入命令会追加到aof_buf【AOF缓冲区】中。
2)AOF缓冲区根据对应的策略向硬盘做sync同步操作。
3)随着AOF文件越来越大,需要定期对AOF文件进行重写【对同一个key的操作,会进行合并命令】,达到压缩的目的。
4)当Redis服务器重启时,可以加载AOF文件进行数据恢复。
3、AOF优缺点
优点:
做到最多丢失1-2s内的数据(最多丢失2s数据,因为AOF追加阻塞)
缺点:
AOF文件比RDB文件大
可能导致追加阻塞
相关文章推荐
- Redis支持的两种持久化备份方式(RDB & AOF)
- Redis(13)--Redis的持久化之AOF方式
- Redis——持久化方式RDB和AOF的区别
- redis学习8---持久化相关测试AOF方式
- Redis学习——Redis持久化之AOF备份方式保存数据
- Redis存储方式RDB和AOF介绍及持久化的重要性
- Redis持久化方式RDB和AOF
- Redis---redis的持久化(RDB和AOF方式)
- Redis持久化原理及配置详解(RDB方式和AOF方式)
- redis 两种持久化方式分析---rdb/aof
- Redis的2种持久化方式Snapshot(RDB)和Append-only file(AOF)的配置和对比
- redis的持久化方式RDB和AOF的区别
- Redis持久化方式RBD和AOF对比
- redis的持久化(RDB和AOF方式)
- redis的持久化方式RDB和AOF的区别
- Redis持久化方式AOF和RDB
- Redis详解之-事件订阅和持久化存储方式(RDB和AOF)(二)
- redis的持久化方式RDB和AOF的区别
- 辛星解读Redis中的AOF持久化方式
- (八)Redis之持久化之AOF方式