redis持久化AOF

2017-11-08  本文已影响57人  吐痰高手

AOF = Append Only File

  1. 打开aof功能
appendonly yes
  1. 指定aof文件
appendfilename "appendonly.aof"
  1. 修复aof备份文件
# linux命令
redis-check-aof --fix [aof文件的路径]
# redis-check-aof是redis文件夹下的一个程序
# 会将文件中不符合aof记录规范语法的内容删除
# 由于各种可能发生的情况会造成aof记录文件破损,这时就可以在启动redis之前执行下这个命令
  1. Appendfsync
# 配置文件中
appendfsync always
# 同步持久化,每次发生数据变更会立即记录到磁盘,性能较差,但数据完整性比较好

appendfsync everysec
# 出场默认推荐,异步操作,美妙记录,如果一秒内宕机,有数据丢失

appendfsync no
# no表示等操作系统进行数据缓存同步到磁盘
# 好像效果就是从不同步

  1. rewrite
# 触发机制在redis.conf中配置,下面的是默认的
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
  1. No-appendfsync-no-rewrite:重写时是否可以运用appendfsync,用默认no即可,保证数据安全性
  1. 优势: 持久化保存的数据比较完整
  2. 劣势:

总结

  1. RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储
  2. AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作你到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大
  3. 只做缓存:如果你只希望你的数据再看服务器运行的时候存在,你可以不适用任何持久化方式
  4. 同时开启两种持久化方式
在这种情况下,当redis重启的时候会有限载入aof文件来恢复原始的数据,
因为在通常情况下aof文件保存的数据集要比rdb文件保存的数据集要完整.

RDB的数据不实时,同时使用两者时服务器重启也只会找aof文件.
那要不要只使用AOF呢?
建议不要,因为RDB更适合用于备份数据库(AOF在不断变化不好备份),
快速重启,而且不会有AOF可能潜在bug,留着作为一个玩意的手段
上一篇 下一篇

猜你喜欢

热点阅读