当前位置: 首页 > 工具软件 > rdb > 使用案例 >

RDB

张啸
2023-12-01

什么是 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.rdb
    • dir ./
    • stop-writes-on-bgsave-error yes
    • rdbcompression yes
    • rdbchecksum yes 采用校验和的方式验证文件的完整性;

最佳配置

  • 不使用 save 命令设置自动 RDB;
  • dbfilename dump-${port}.rdb 用端口标识文件名;
  • dir /bigdiskpath
  • stop-writes-on-bgsave-error yes
  • rdbcompression yes
  • rdbchecksum yes

其他触发 RDB 的机制

  • 主从间发生全量复制时会触发 RDB 文件的生成;
  • debug reload 以不清空内存中的数据的方式重启 Redis 时会触发 RDB 文件的生成;
  • shutdown save 时会触发 RDB 文件的生成;
 类似资料: