Redis提供了两种主要的持久化方式:
一、RDB 持久化:
方式:保存内存数据库快照到硬盘。
触发条件:
- save命令
- 定时器(save命令配置)
- backgrond save 命令
- 服务器重新启动
优点:
- 快速创建镜像
- 执行效率高
缺点:
- 临时数据丢失
- 在切换期间客户端无法访问
二、AOF 持久化:
方式: 在服务启动、执行写命令时,将写命令记录到日志文件中。
触发条件:
- 修改AOF文件的内容
优点:
- 每一修改都被记录,数据完整性高。
- 实时持久化
缺点:
- 文件大小变得非常大。
- 刷新日志需要耗费更多CPU和IO资源。
比较:
- RDB更适合备份数据库
- AOF更适合追加日志
一般同时使用:
- 初始使用快速的RDB文件
- 后续使用AOF进行增量记载
综上,两个方式各有优缺点:
RDB
- 快速创建镜像
- 执行效率高
AOF
- 数据完整性高
- 动态记录