持久化机制
Redis 提供两种持久化方式:RDB 和 AOF。
RDB(快照)
RDB 将某一时刻的内存数据保存到磁盘的二进制文件。
配置
conf
save 900 1 # 900秒内至少1次修改
save 300 10 # 300秒内至少10次修改
save 60 10000 # 60秒内至少10000次修改
dbfilename dump.rdb
dir ./手动触发
bash
# 阻塞式
SAVE
# 非阻塞式(推荐)
BGSAVE优缺点
优点:
- 文件紧凑,适合备份
- 恢复速度快
- 对性能影响小
缺点:
- 可能丢失最后一次快照后的数据
- 大数据集保存时可能卡顿
AOF(追加文件)
AOF 记录所有写操作命令。
配置
conf
appendonly yes
appendfilename "appendonly.aof"
# 同步策略
appendfsync always # 每次写操作都同步
appendfsync everysec # 每秒同步(推荐)
appendfsync no # 由操作系统决定重写
bash
# 手动触发
BGREWRITEAOF
# 自动触发
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb优缺点
优点:
- 数据更安全,最多丢失1秒数据
- 可读性好
缺点:
- 文件体积大
- 恢复速度慢
- 对性能影响大
混合持久化
Redis 4.0+ 支持 RDB + AOF 混合持久化。
conf
aof-use-rdb-preamble yes选择建议
- 数据安全要求高:AOF
- 性能要求高:RDB
- 生产环境:混合持久化
在下一章中,我们将学习主从复制机制。