桥山之巅,姬水之畔

Redis(七)-RDB&AOF

2019.08.01

1. 使用建议

  1. 如果只使用Redis的缓存功能(数据只存在与服务器运行的时候),可以不使用任何持久化
  2. 仍然建议同时开启RDB、AOF备份。通常AOF文件备份的数据比RDB文件备份的要更加完整,用AOF来保证数据不丢失,作为恢复数据的第一选择;用RDB来做不同程度的冷备,在AOF文件都丢失或损坏不可用的时候,可以使用RDB进行快速的数据恢复。
  • 性能方面
    • 建议只在slave上持久化RDB文件,而且值要15分钟备份一次就够了。
    • 如果开启 AOF,好处是在最坏的情况下也只会丢失不超过2秒的数据,启动时只需要载入自己的AOF即可。
      • 代价是带来了持续的I/O
      • 二是AOF rewrite的最后将rewrite过程中产生的新数据写入到新文件造成的阻塞几乎是不可避免的。只要硬盘允许,应尽量减少AOF rewrite的频率,AOF重写的基础大小默认64M太小,可以设置到5G以上。默认超过原大小100%时进行重写,可以修改到适当的值。
    • 如果不开启 AOF,仅靠master-slave Replication 实现高可用也是可以的,能省掉一大笔I/O, 同时较少了Rewrite带来的系统波动。
      • 代价是,如果master和slave同时down掉,会丢失较长时间数据,启动是也要比较master/slave中的RDB文件,载入较新的那个。