首页/数据/数据库速查/RDB 触发与相关配置(save / dbfilename)
Redis 运维与场景124 条

RDB 触发与相关配置(save / dbfilename)

save 行定义自动快照条件(如 900 秒内 1 个键变更);dbfilename/dir 决定落盘位置;7.0 起 save 支持单行多组配置。

数据库速查数据更新于 2026-10-13

RDB 配置怎么设

RDB 相关配置决定快照什么时候生成、存到哪里:save 行定义自动快照的触发条件,例如 900 秒内至少 1 个键发生变更;dbfilename 与 dir 决定文件名和落盘目录;rdbcompression 与 rdbchecksum 控制压缩与校验。Redis 7.0 起 save 支持把多组条件写在同一行。配置在运行时改完想持久化,必须执行 CONFIG REWRITE。

基本信息

save自动快照触发条件,可写多行,7.0 起可合并为一行
save 空字符串关闭自动快照,需要另行安排备份
dbfilename快照文件名,通常为 dump.rdb
dir落盘目录,必须对运行用户可写
rdbcompression / rdbchecksumLZF 压缩字符串对象与末尾 CRC64 校验

典型使用场景

  • 调整快照频率,在性能与数据安全之间取平衡
  • 把快照目录迁到独立磁盘,避免与数据盘争抢 IO
  • 关闭自动快照,改用外部备份方案
  • 排查快照失败与随之而来的拒绝写报错
  • 核对运行时的配置是否被临时改过

配置示例

配置示例
dir /var/lib/redis          # RDB 与 AOF 的落盘目录,需可写
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000               # 60 秒内 1 万次变更触发
# 7.0 及以上可合并成一行:
# save 900 1 300 10 60 10000
rdbcompression yes
rdbchecksum yes
stop-writes-on-bgsave-error yes

配置项与注意

配置项作用注意事项
save自动快照触发条件条件越多触发越频繁,写放大
save 空值关闭自动快照需要配套的外部备份方案
dir落盘目录权限不对会导致快照静默失败
dbfilename文件名称同机多实例必须区分开
rdbcompression压缩字符串对象省空间,消耗少量 CPU
stop-writes-on-bgsave-error快照失败时停止写入避免在无持久化状态下继续跑
运行时用 CONFIG SET save 改完条件,如果不执行 CONFIG REWRITE 就不会写回配置文件,重启后设置悄悄回退,排查问题时最容易被这个现象带偏。
dir 指向没有写权限的目录时,快照会静默失败,之后触发拒绝写报错;上线前先手工触发一次 BGSAVE,确认落盘路径真的可用。
完全关闭自动快照需要配套外部备份方案,否则等同于放弃崩溃恢复能力:磁盘一旦故障,数据会一起消失。

易错点

  • dir 指向无写权限目录:快照静默失败并最终触发拒绝写
  • 运行时改配置不做 CONFIG REWRITE:重启后设置回退
  • 触发条件设置得过于激进:频繁快照造成 fork 与 IO 抖动
  • 关闭自动快照却没有外部备份:彻底失去崩溃恢复能力

数据来源与参考

  • Redis 官方文档: 持久化配置
  • Redis 官方文档: CONFIG GET

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌