RDB

描述

  • 每隔一定的时间将内存中的数据作为一个快照保存到硬盘上的文件中
  • 默认开启RDB机制

触发机制

  1. 默认
  1. save 900 1 # 900s内至少一个修改则触发保存操作
  2. save 300 10 # 300s内至少有10次修改则触发保存操作
  3. save 60 10000 # 60s内至少有1w次修改则触发保存操作
  1. 保存
    1. save 保存
    2. bgsave 后台保存
    3. flushall 清空数据 执行一次保存
    4. shutdown 服务器关闭让 redis 正常退出,会执行持久化保存

配置

  • redis.conf

    save “” # 会禁用RDB机制 dbfilename dump.rdb # 设置RDB机制下,数据存储文件的文件名 dir /usr/local/bin # 指定存放持久化文件的目录的路径,默认 ./

AOF

描述

  • 将生成数据的命令保存到硬盘上的文件

    配置

  • redis.conf

    appendonly yes # 启用AOF持久化机制,默认 no appendfilename “filename” # AOF持久化文件名 dir /usr/local/bin # 指定存放持久化文件的目录的路径,默认 ./ appendsync everysec # 存放时机 # always 每一次数据修改都将执行文件写入操作

                       #everysec 每秒执行一次写入操作。 (默认)
                       #no 由操作系统在适当的时候执行下入操作
    

AOF重写配置

  • 压缩文件体积
  • redis.conf

    auto-aof-rewrite-percentage 100 # 文件体积增大 100% 执行AOF重写 auto-aof-rewrite-min-size 64mb # 文件体积达到 64mb 才执行AOF重写

  • 建议不要频繁重写

持久化文件修复

  • 备份 aof 文件
  • 执行修复程序

    ./redis-check-aof —fix target.aof

  • 重启程序

修复只是删除损坏部分,无法恢复受损的数据