Skip to content

持久化机制 ​

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
  • 生产环境:混合持久化

在下一章中,我们将学习主从复制机制。