Redis-aof持久化

什么是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文件恢复数据
posted @ 2016-10-13 23:09  qlshine  阅读(382)  评论(0编辑  收藏  举报