Skip to content

Redis 持久化

Redis 主要有两种持久化方式:

  • RDB:定时生成内存快照。
  • AOF:记录写命令日志。

两者可以单独使用,也可以同时使用。

RDB

RDB 会把某一时刻的数据快照写入磁盘。

手动生成快照:

bash
BGSAVE

BGSAVE 会 fork 子进程生成快照,主进程继续处理请求。SAVE 会阻塞 Redis,线上不常用。

常见配置:

ini
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data

适合:

  • 备份。
  • 容忍少量数据丢失。
  • 快速恢复大数据集。

AOF

AOF 会追加记录写命令,通过重放命令恢复数据。

常见配置:

ini
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

appendfsync 常用值:

  • always:每次写入都刷盘,安全但慢。
  • everysec:每秒刷盘,常用折中方案。
  • no:交给操作系统决定,性能好但风险更高。

AOF 重写

AOF 文件会越来越大,需要重写压缩。

手动触发:

bash
BGREWRITEAOF

常见配置:

ini
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

选择建议

  • 缓存场景:可以不开持久化,或只开 RDB。
  • 不能接受较大数据丢失:开启 AOF,使用 everysec
  • 需要恢复速度和数据安全折中:RDB + AOF 同时开启。

持久化不能替代备份,重要数据仍需要定期备份持久化文件。

基于 MIT 许可发布