Redis持久化机制对比 Redis提供RDB和AOF两种持久化方式,确保数据安全。 RDB持久化 基本原理 RDB(Redis Database)在指定时间间隔内生成数据集的时间点快照。 手动触发 RDB优缺点 优点: 紧凑文件,适合备份 恢复速度快 适合灾备 缺点: 可能丢失数据 fork()消耗资源 AOF持久化 基本原理 AOF(Append Only File)记录每个写操作命令。 AOF重写 AOF优缺点 优点: 数据安全性高 AOF文件可读 自动重写优化 缺点: 文件体积大 恢复速度慢 性能影响 混合持久化 基本配置 Redis 4.0+支持RDB-AOF混合持久化。
Redis提供RDB和AOF两种持久化方式,确保数据安全。
RDB(Redis Database)在指定时间间隔内生成数据集的时间点快照。
# 配置RDB save 900 1 # 900秒内至少1个key变化 save 300 10 # 300秒内至少10个key变化 save 60 10000 # 60秒内至少10000个key变化 # RDB文件名 dbfilename dump.rdb # RDB文件目录 dir /var/lib/redis
# 同步保存 redis-cli SAVE # 异步保存 redis-cli BGSAVE # 查看上次保存时间 redis-cli LASTSAVE
优点:
缺点:
AOF(Append Only File)记录每个写操作命令。
# 启用AOF appendonly yes # AOF文件名 appendfilename "appendonly.aof" # 同步策略 appendfsync always # 每次写入同步 appendfsync everysec # 每秒同步(推荐) appendfsync no # 操作系统决定
# 自动重写配置 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 手动重写 redis-cli BGREWRITEAOF
优点:
缺点:
Redis 4.0+支持RDB-AOF混合持久化。
# 启用混合持久化 aof-use-rdb-preamble yes
AOF文件结构: [RDB数据] + [AOF增量命令] 重启时: 1. 加载RDB部分 2. 重放AOF增量
| 特性 | RDB | AOF | 混合 |
|---|---|---|---|
| 文件大小 | 小 | 大 | 中 |
| 恢复速度 | 快 | 慢 | 中 |
| 数据安全 | 低 | 高 | 高 |
| 性能影响 | 小 | 大 | 中 |
Redis持久化需要根据场景选择。混合持久化平衡了性能和安全性。