zhanxuewei
Published on 2024-04-23 / 12 Visits
0
0

Redis的持久化机制

Redis持久化机制深度解析

一、持久化核心方案

1. RDB(Redis Database)

工作原理‌:

  • 定时生成内存快照(二进制压缩文件)

  • 通过SAVE(阻塞)或BGSAVE(后台)命令触发

  • 配置示例:save 900 1(900秒内至少1次修改时触发)

特点‌:

  • ✅ 文件紧凑(适合备份/灾难恢复)

  • ✅ 恢复速度快

  • ❌ 可能丢失最后一次快照后的数据

2. AOF(Append Only File)

工作原理‌:

  • 记录所有写操作命令(文本协议格式)

支持三种同步策略:

  • appendfsync always(每次写入同步)

  • appendfsync everysec(默认,每秒同步)

  • appendfsync no(由操作系统决定)

特点‌:

  • ✅ 数据安全性更高

  • ✅ 可读性强(可通过redis-check-aof修复)

  • ❌ 文件体积较大

二、混合持久化(Redis 4.0+)

结合RDB和AOF优势

AOF文件包含:

  • RDB格式的全量数据

  • 增量AOF日志

  • 配置项:aof-use-rdb-preamble yes

三、关键配置参数

# RDB配置

dbfilename dump.rdb

dir /var/lib/redis

# AOF配置

appendonly yes

appendfilename "appendonly.aof"

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

四、数据恢复优先级

仅AOF开启时 → 加载AOF文件

仅RDB开启时 → 加载RDB文件

两者都开启时 → AOF优先

五、生产环境建议

建议同时开启RDB和AOF

RDB用于定时备份(如每日)

AOF使用everysec策略平衡性能与安全

监控aof_current_size和aof_base_size防止AOF膨胀


Comment