Administrator
Published on 2025-03-08 / 29 Visits
7
0

Redis 的持久化机制

Redis 提供两种核心持久化机制:RDB(Redis Database)快照AOF(Append Only File)追加日志


一、RDB(Redis Database)配置

特性:定时生成内存快照(二进制压缩文件),适合备份和灾难恢复

# redis.conf 核心配置项

# 自动触发条件(满足任意一条即触发)
save 900 1      # 15分钟内至少1次修改
save 300 10     # 5分钟内至少10次修改
save 60 10000   # 1分钟内至少10000次修改

stop-writes-on-bgsave-error yes  # 持久化失败时停止写入
rdbcompression yes              # 启用LZF压缩
rdbchecksum yes                 # 校验和验证
dbfilename dump.rdb            # 文件名
dir ./                         # 存储路径

二、AOF(Append Only File)配置

特性:记录所有写操作命令,提供更高数据安全性

# redis.conf 核心配置项

appendonly yes                 # 启用AOF
appendfilename "appendonly.aof" # 文件名

# 同步策略(三选一)
appendfsync always    # 每个写操作同步(最安全,性能最低)
appendfsync everysec  # 每秒同步(推荐平衡方案)
appendfsync no        # 由操作系统决定(性能最高,风险最大)

auto-aof-rewrite-percentage 100  # AOF文件增长超过100%时触发重写
auto-aof-rewrite-min-size 64mb   # 最小重写文件大小
aof-load-truncated yes          # 加载截断的AOF文件时继续

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

特性:结合RDB和AOF优势,重写时生成RDB格式头部+AOF增量数据

aof-use-rdb-preamble yes  # 启用混合模式

四、场景化配置建议

1. 数据安全优先方案

save ""                   # 禁用RDB
appendonly yes
appendfsync always        # 最高安全级别

2. 性能优先方案

save 900 1                # 低频RDB
appendonly yes
appendfsync everysec      # 折中同步策略

3. 灾难恢复优化方案

save 300 100              # 5分钟级RDB
appendonly yes
appendfsync everysec
dir /mnt/redis_backup/   # 单独存储到持久化卷

五、操作指南

  1. 动态修改配置(无需重启):

    CONFIG SET appendonly yes
    CONFIG REWRITE        # 持久化到配置文件
    
  2. 手动触发持久化

    SAVE               # 阻塞式保存(生产环境慎用)
    BGSAVE             # 后台异步保存
    BGREWRITEAOF       # 重写AOF文件
    
  3. 恢复数据

    # 关闭Redis后,将备份文件放入配置的dir目录
    cp dump.rdb /var/lib/redis/6379/
    # 启动时会自动加载
    

六、注意事项

  1. 内存消耗:AOF文件通常比RDB大2-5倍,确保有足够磁盘空间

  2. 性能监控

    INFO Persistence    # 查看持久化状态
    INFO Stats          # 监控每秒写入量
    
  3. 版本兼容性:Redis 4.0+ 的混合持久化文件无法被旧版本读取

  4. 大内存实例:超过32GB内存的实例建议优先使用RDB

    持久化选项的总结
    RDB 优点:
    更快的持久化过程,因为它只需要定期执行。
    生成的快照文件是紧凑的二进制文件,适合备份和复制。
    RDB 缺点:
    如果服务器故障,可能会丢失最后一次快照之后的数据。
    AOF 优点:
    提供更高的数据安全性,因为它记录了每个写操作。
    可以配置不同的同步策略来平衡安全性和性能。
    AOF 缺点:
    AOF 文件通常比 RDB 文件大,因为它是文本格式的命令日志。
    持久化过程可能比 RDB 慢,尤其是当使用 always 同步策略时。


七、验证配置

  1. 检查文件生成:
    ls -lh /path/to/redis/dir/*.rdb *.aof
    
  2. 查看日志:
    tail -f /var/log/redis/redis.log | grep 'Background saving'
    
  3. 使用redis-check-aofredis-check-rdb工具验证文件完整性

根据您的具体场景需求(数据安全等级、性能要求、恢复时间目标等),可以灵活组合这些配置选项。需要更具体的建议时,请提供您的使用场景和Redis版本信息。


Comment