Redis 持久化
Redis 的持久化机制有什么,各自的优缺点
Redis 主要有 RDB、AOF 和混合持久化。
RDB 是快照持久化,把某个时间点的数据生成 dump 文件。优点是文件紧凑、恢复快、适合备份;缺点是两次快照之间宕机可能丢数据,bgsave 时 fork 大进程也可能带来瞬时阻塞。
AOF 是追加日志,记录每次写命令。优点是数据丢失更少,appendfsync everysec 通常最多丢 1 秒左右数据;缺点是文件更大,恢复时要重放命令,速度可能慢于 RDB,需要 AOF rewrite 压缩日志。
混合持久化 是 AOF rewrite 后文件前半部分用 RDB 格式,后半部分追加增量 AOF,兼顾恢复速度和数据完整性。
生产里常见选择是开启 AOF everysec,重要数据再配合 RDB 备份。Redis 仍然不适合作为唯一强一致存储。
恢复时哪个更快
通常 RDB 恢复更快,因为它直接加载快照文件。AOF 要逐条重放写命令,文件越大恢复越慢。
如果开启混合持久化,恢复速度会接近 RDB,同时保留 AOF 较小的数据丢失窗口。Redis 启动时如果同时存在 RDB 和 AOF,一般优先加载 AOF,因为 AOF 通常数据更新。