什么是redis的aof?
aof 是 appendonly file 的缩写, 是redis系统提供的一种记录redis操作的持久化方案, 在aof生成的文件中, 将记录发生在redis的操作, 从而达到在redis服务器重启或者宕机后, 继续恢复之前的数据状态
AOF文件的保存位置和 RDB文件的位置相同,都是通过dir参数设置的,默认的文件名是
appendonly.aof,可以通过appendfilename参数修改
aof的配置参数
appendonly no #是否打开aof日志功能
appendfsync always #每一个命令, 都立即同步到aof, 安全, 速度慢
appendfsync everysec #折中方案, 每秒写一次
appendfsync no #写入工作交给操作系统, 由操作系统判断缓存去大小, 统一写入到aof, 同步频率低, 速度快
no-appendfsync-on-rewrite yes #正在导出 rdb 快照过程中, 要不要停止同步 aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小, 增长率 100% 时, 重写
auto-aof-rewrite-min-size 64mb #aof文件, 至少超过 64M 时重写
问: 在dump rdb过程中, aof如果停止同步数据会不会丢失?
答: 不会, 所有的操作缓存在内存的队列里, dump完成后统一操作
问: aof重写是什么
答: aof重写是指把内存中的数据, 逆化成命令, 写入 .aof 日志里, 以解决 aof 日志过大的问题
问: 如果rdb文件和aof文件都存在, 优先用谁来恢复数据?
答: aof
问: 两种是否可以同时使用?
答: 可以, 推荐这样做
问: 恢复时rdb和aof哪个恢复的快?
答: rdb快, 因为它是数据的内存映射, 而aof是命令, 需要逐条执行
Redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动Redis后, Redis会使用AOF文件来恢复数据
实际上当Redis服务器挂掉后, 重启时将按照以下恢复数据到内存
- 如果只配置AOF,重启时加载AOF文件恢复数据
- 如果同时 配置了RDB和AOF,启动是只加载AOF文件恢复数据
- 如果只配置RDB,启动是将加载dump文件恢复数据