Redis 持久化的方式有哪些?各自有什么优缺点?

Redis提供了两种主要的持久化方式:
一、RDB 持久化:

方式:保存内存数据库快照到硬盘。

触发条件:

  • save命令
  • 定时器(save命令配置)
  • backgrond save 命令
  • 服务器重新启动

优点:

  • 快速创建镜像
  • 执行效率高

缺点:

  • 临时数据丢失
  • 在切换期间客户端无法访问

二、AOF 持久化:

方式: 在服务启动、执行写命令时,将写命令记录到日志文件中。

触发条件:

  • 修改AOF文件的内容

优点:

  • 每一修改都被记录,数据完整性高。
  • 实时持久化

缺点:

  • 文件大小变得非常大。
  • 刷新日志需要耗费更多CPU和IO资源。

比较:

  • RDB更适合备份数据库
  • AOF更适合追加日志

一般同时使用:

  • 初始使用快速的RDB文件
  • 后续使用AOF进行增量记载

综上,两个方式各有优缺点:

RDB

- 快速创建镜像
- 执行效率高

AOF

- 数据完整性高
- 动态记录