redis|redis rbd与aof区别


Redis的持久化机制包括RBD和AOF两种,对于这两种持久化方式各有优势,本文将对此进行介绍。
https://blog.csdn.net/baidu_32872293/article/details/78174330

RDB机制的策略
RDB持久化是指在指定的时间间隔内将内存中的数据和操作通过快照的方式保存到redis bin目录下的一个默认名为 dump.rdb的文件,可以通过配置设置自动的快照持久化的方式,我们可以配置redis在n秒内进行快照的时间,如果超过这个时间节点,将会自动执行快照操作。虽然这种方式方便快捷,但是无法保证数据的绝对安全可靠,如果服务器在非备份时间跨度内发生了故障,无法做到对当前状态的实时保存,导致数据丢失。而且每次保存 RDB文件时, Redis都需要 fork()出一个子进程,由子进程来执行具体的持久化工作,对资源消耗较大。——最大缺点


AOF机制的策略
redis 的 AOF 持久化是在每次接受到的写命令通过 write函数追加到文件中(默认是 appendonly.aof),但是由于操作系统在写入文件时使用了缓存来提高写入效率,还是可能会出现因服务器突然故障而导致的数据丢失,故我们可以通过配置文件告诉redis我们同步数据的时间间隔(默认间隔是每秒同步一次)

[html]view plain copy

  1. appendonly yes//启用aof持久化方式
  2. # appendfsync always//每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
  3. appendfsync everysec//每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
  4. # appendfsync no//完全依赖os,性能最好,持久化没保证
AOF 的速度可能会慢于 RDB 。——最大缺点;也是RBD的优点 在一般情况下, 每秒 fsync 的性能依然非常高——折中方案,数据安全与访问性能折中, 而关闭 fsync 可以让 AOF 的速度和 RDB 一样快, 即使在高负荷之下也是如此。


个人小结:
rbd优点:访问性能最佳缺点:数据不安全、fork消耗极大
【redis|redis rbd与aof区别】aof优点:数据相对安全缺点:访问性能相对不在最佳


    推荐阅读