Redis 持久化的两种方式:
- RDB:RDB 持久化机制,是对 Redis 中的数据执行周期性的持久化。
- AOF:AOF 机制对每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,在 Redis 重启的时候,可以通过回放 AOF 日志中的写入指令来重新构建整个数据集。
RDB
Redis Database File
- 适合冷备份
- 基于 RDB 数据文件来重启和恢复 Redis 进程,更加快速
- RDB 数据快照文件,都是每隔 5 分钟,或者更长时间生成一次,这个时候就得接受一旦 Redis 进程宕机,那么会丢失最近 5 分钟的数据。
- RDB 每次在 fork 子进程来执行 RDB 快照数据文件生成的时候,如果数据文件特别大,可能会导致对客户端提供的服务暂停数毫秒,或者甚至数秒
AOF
Append Only File
- 后台线程
fsync操作,最多丢失 1 秒钟的数据。 - AOF 日志文件以 append-only 模式写入,所以没有任何磁盘寻址的开销,写入性能非常高
- 不会影响客户端的读写
- 适合做灾难性的误删除的紧急恢复
- 对于同一份数据来说,AOF 日志文件通常比 RDB 数据快照文件更大。
- AOF 开启后,支持的写 QPS 会比 RDB 支持的写 QPS 低,因为 AOF 一般会配置成每秒 fsync 一次日志文件,当然,每秒一次 fsync ,性能也还是很高的。