什么是 RDB
- RDB 文件是在硬盘上的二进制文件;
- RDB 文件是 Redis 在内存存储的数据在某一时刻的快照;
- RDB 文件可在 Redis 启动的时候载入;
- RDB 文件是 Redis 节点复制时的媒介;
三种主要触发 RDB 的机制
save 同步命令
- 生成 RDB 文件,会使客户端的命令排队,
- 文件策略:如果存在老的 RDB 文件会被替换;
- 时间复杂度:O(n);
bgsave 异步命令
- 调用 Linux 的 fork() 函数创建子进程用于生成 RDB 文件;
- 文件策略:如果存在老的 RDB 文件会被替换;
- 时间复杂度:O(n);
自动触发
- 在某些条件满足时,自动触发 RDB 文件的生成,以
bgsave方式,比如:-
save 60 10000在 60s 内更新 10000 条数据,触发 RDB; -
save 300 10在 300s 内更新 10 条数据,触发 RDB; -
save 900 1在 900s 内更新 1 条数据,触发 RDB;
-
- 相关命令
dbfilename dump.rdbdir ./stop-writes-on-bgsave-error yesrdbcompression yes-
rdbchecksum yes采用校验和的方式验证文件的完整性;
最佳配置
- 不使用
save命令设置自动 RDB; -
dbfilename dump-${port}.rdb用端口标识文件名; dir /bigdiskpathstop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yes
其他触发 RDB 的机制
- 主从间发生全量复制时会触发 RDB 文件的生成;
-
debug reload以不清空内存中的数据的方式重启 Redis 时会触发 RDB 文件的生成; -
shutdown save时会触发 RDB 文件的生成;
本文深入解析Redis中的RDB(Remote Database)机制,包括其作为硬盘上二进制文件的角色、在内存存储数据快照的应用、启动时的载入过程及在节点复制中的作用。详细介绍了RDB文件的生成机制,如save同步命令、bgsave异步命令及其文件策略,以及自动触发RDB生成的条件。同时,文章涵盖了RDB相关的配置参数和在主从复制、debug reload及shutdown save场景下触发RDB的机制。
178

被折叠的 条评论
为什么被折叠?



