【redis】持久化之AOF和RDB
Redis 提供了两种持久化方式:RDB(Redis DataBase)和 AOF(Append Only File)。
- RDB 持久化
RDB 是 Redis 默认的持久化方式。在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是 Snapshot 快照,保存的文件后缀是 .rdb
。
# 在 redis.conf 中配置
save 900 1 # 900 秒内至少 1 个键被修改则触发保存
save 300 10 # 300 秒内至少 10 个键被修改则触发保存
save 60 10000 # 60 秒内至少 10000 个键被修改则触发保存
dbfilename dump.rdb # 指定 RDB 文件名
dir /path/to/your/redis/directory # 指定 RDB 文件存储目录
- AOF 持久化
AOF 持久化是通过保存 Redis 服务器所执行的写命令来记录数据库状态的。在发生断电等问题时可能会丢失最后一段时间的命令,因此 AOF 可以配置同步策略。
# 在 redis.conf 中配置
appendonly yes # 开启 AOF 持久化存储
appendfilename "appendonly.aof" # AOF 文件名
# 同步策略
appendfsync always # 每次写入都同步,最慢但最安全
appendfsync everysec # 每秒同步一次,折衷方案
appendfsync no # 完全依赖操作系统,最快但不安全
- 比较与选择
- RDB 是一个快照,体积小,恢复速度快,但可能会丢失最后一次保存后的数据。
- AOF 记录每次写操作,体积大,恢复速度慢,但不会丢失数据。
选择哪种持久化方式取决于你对数据完整性和性能的需求。如果你希望在服务器失效时丢失尽可能少的数据,那么 RDB 可能更适合。如果你需要最小化数据丢失风险并且可以接受较长的恢复时间,AOF 可能更好。
评论已关闭