Redis-持久化-AOF和RDB如何选择

1,用哪个好

  官方推荐两个都启用

  如果数据不敏感,可单独使用RDB

  但不建议单独使用AOF,因为可能会出现BUG

  如果只是做纯内存缓存,可以两个都不用

  

 

2,官方建议

  1)RDB持久化方式能够在指定的时间间隔能对你的数据进行快照储存

  2)AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行只写命令来恢复原始的数据,

    AOF命令以及Redis 协议追加保存每次写的操作到文件末尾

  3)Redis 还能对 AOF 文件进行后台重写,使得 AOF 文件的体积不至于过大

  4)只做缓存:如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式

  5)同时开启两种持久化方式

    在这种情况下,当 redis 重启的时候会优先载入aof 文件来恢复数据,因为在通常情况下,AOF文件保存的数据集要比 RDB文件保存的数据集要完整

  6)RDB的数据集不实时,同时使用两者时服务器重启也只会找 AOF 文件,那要不要只使用 AOF 呢?

    建议不要,因为 RDB 更适合用于备份数据库(AOF在不断变化不好备份),快速重启,而且不会有 AOF 可能潜在的bug,留着作为一个以防万一

 

  7)性能建议

    因为 RDB 文件只用作后备用途,建议只在 Slave 上持久化 RDB 文件,而且只要15分钟备份一次就好了,只保留 save 900 1 这条规则

    如果使用 AOF ,好处是在最恶劣的情况下,也只会丢失不超过2秒的数据,启动脚本较简单只load自己的 AOF 文件就可以了。

      代价,一是带来了持续的I/O ,二是 AOF rewrite的最后将rewrite过程中产生的新数据写到新文件造成的阻塞几乎是不可避免的

    只要硬盘许可,应该尽量减少 AOF rewrite 的频率,AOF 重写默认的基础大小是 64M  ,太小了,可以设置在 5g 以上

    默认操作原大小100%重写的规则可以改到适当的大小

  

上一篇:Windows下 python pybluez 安装使用记录


下一篇:Django第一次作业-创建项目(显示个人信息)