RDB

什么是 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 文件的生成;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值