redis-RDB持久化配置文件解析

save命令配置

image

配置含义

save 命令的语法是 save [seconds] [changes],表示:
"在 seconds 秒内,如果发生了至少 changes 次数据修改,则触发一次快照"。
stop-writes-on-bgsave-error配置
image

配置含义

当后台 RDB 持久化(bgsave)失败时,Redis 是否停止接受新的写入操作,默认是yes。
也就是说当 RDB 快照功能已启用(即配置了 save 策略),且最近一次后台持久化(bgsave 命令)失败(例如磁盘满、权限不足、IO 错误等),Redis 会立即停止接受新的写操作(如 SET、LPUSH 等),但仍允许读操作。如果后续的 bgsave 操作成功恢复(例如磁盘空间释放、修复权限后),Redis 会自动恢复接受写入,无需手动重启。

禁用此功能的场景

如果已对 Redis 服务器和持久化过程配置了完善的监控告警(例如通过 Prometheus + Grafana 监控 bgsave 状态、磁盘空间等),可以将该配置设为 no。适合更看重服务可用性,且能通过监控及时发现并处理持久化错误的场景(例如允许短暂数据丢失风险,优先保证业务不中断)。

rdbcompression配置

image

配置含义

在生成 RDB 快照文件(.rdb)时,是否对字符串对象使用 LZF 算法进行压缩。默认是yes。
Redis 默认启用 LZF 压缩,因为它在大多数场景下是 “利大于弊” 的(almost always a win)。LZF 是一种 无损压缩算法,可以有效减小 RDB 文件体积,节省磁盘空间,同时网络传输(如主从复制)时也能减少带宽消耗。

禁用压缩的场景

如果希望 节省 CPU 资源(尤其是在 bgsave 子进程执行压缩时),可以将其设为 no。但代价是:如果数据中包含可压缩的字符串(如长文本、JSON、重复值等),RDB 文件体积会显著增大。
image

rdbchecksum配置

image

配置含义

在生成 RDB 快照文件(.rdb)时,是否在文件末尾添加 CRC64 校验和(checksum),以验证文件完整性。

CRC64 校验和的作用

从 Redis 5.0 版本开始,RDB 文件格式引入了 CRC64 校验和,它就像文件的“数字指纹”,用于在 写入后(保存)和读取前(加载) 验证 RDB 文件是否完整、未被篡改或损坏(如磁盘 IO 错误、传输过程中数据丢失等)。

性能代价

添加和验证 CRC64 校验和会带来约 10% 的性能损耗(performance hit of around 10%),主要体现在:
保存时:bgsave 子进程需要对整个 RDB 文件计算 CRC64 值。
加载时:Redis 启动或主从复制加载 RDB 文件时,需要验证 CRC64 值是否匹配。

禁用校验的场景

如果追求 极致性能,可以将其设为 no。此时 RDB 文件末尾校验和为 0,加载时会跳过校验步骤,但代价是无法识别文件损坏,可能导致加载错误数据或 Redis 启动失败。

sanitize-dump-payload配置

image

配置含义

是否对 RDB 文件或 RESTORE 命令中的数据结构(如 ziplist、listpack)执行全量安全性校验。
no(当前默认值):禁用全量校验。
yes:对所有场景(包括 RDB 加载、RESTORE 命令)执行全量校验。
clients:仅对用户客户端的 RESTORE 命令执行校验,排除 RDB 文件加载、主从复制中的 RESTORE 命令,以及带有 skip-sanitize-payload ACL 标志的客户端。
image

dbfilename配置

image

配置含义

指定 Redis 进行 RDB 持久化时生成的快照文件名称。默认值为 dump.rdb,即 RDB 文件将以该名称保存在 Redis 的工作目录(dir 配置指定的目录)中。一般该配置不会更改。

rdb-del-sync-files配置

image

配置含义

在禁用持久化(AOF 和 RDB 均关闭)的 Redis 实例中,是否删除主从复制时生成的临时 RDB 同步文件。
no(默认值):不自动删除,保留同步过程中生成的 RDB 文件。
yes:自动删除主从复制时临时生成的 RDB 文件,同步完成后立即清理。

配置生效的前提

仅在同时满足以下条件时,该配置才会生效:
1.Redis 实例 未启用任何持久化(即 appendonly no 且未配置 save 策略,AOF 和 RDB 均关闭)。
2.实例处于 主从复制架构 中(作为主节点或从节点)。
如果实例启用了 AOF 或 RDB 持久化,该配置会被 完全忽略(completely ignored)。

dir配置

image

配置含义

指定 Redis 的工作目录(working directory),即 RDB 快照文件(dump.rdb)和 AOF 日志文件(appendonly.aof)的存储路径,必须指定目录路径,而非文件名。默认值为 /var/lib/redis。
dir 和 dbfilename 是 配套使用 的,共同决定 RDB 文件的完整路径,RDB 文件完整路径:/var/lib/redis/dump.rdb。

posted on 2025-09-28 15:13  jaba  阅读(16)  评论(0)    收藏  举报

导航