关闭

Redis持久化RDB和AOF优缺点

瞎溜达 1年前 ⋅ 108 阅读

RDB:RDB持久化方式,是将Redis某一时刻的数据持久化到磁盘中,是一种快照式的持久化方法。

RDB优点:

  • RDB是一个非常紧凑(有压缩)的文件,它保存了某个时间点的数据,非常适用于数据的备份。
  • RDB作为一个非常紧凑的文件,可以很方便传送到另一个远端数据中心,非常适用于灾难恢复。
  • RDB在保存RDB文件时父进程唯一需要做的就是fork出一个子进程,接下来的工作全部由子进程来做,父进程不需要再做其他IO操作,所以RDB持久化方式可以最大化redis的性能。
  • 与AOF相比,在恢复大的数据集的时候,RDB方式会更快一些。

RDB缺点:

  • Redis意外宕机时,会丢失部分数据。
  • 当Redis数据量比较大时,fork的过程是非常耗时的,fork子进程时是会阻塞的,在这期间Redis是不能响应客户端的请求的。

AOF:AOF方式是将执行过的写指令记录下来,在数据恢复时按照从前到后的顺序再将指令都执行一遍。

AOF优点:

  • 使用AOF会让你的Redis更加持久化。
  • AOF文件是一个只进行追加的日志文件,不需要在写入时读取文件。
  • Redis可以在AOF文件体积变得过大时,自动地在后台对AOF进行重写。
  • AOF文件可读性高,分析容易。

AOF缺点:

  • 对于相同的数据来说,AOF文件大小通常要大于RDB文件。
  • 根据所使用的fsync策略,AOF的速度可能会慢于RDB。

全部评论: 0

    我有话说: