Redis RDB

RDB #

功能 [1] #

  • 只需要把 RDB 文件直接读入内存,可以快速恢复数据库。这就避免了 AOF 需要顺序、逐一重新执行操作命令带来的低效性能问题。

  • Redis 设计了 bgsave写时复制方式,尽可能减少了内存快照对正常读写的影响,但是,频繁快照仍然是不太能接受的。

【 总结: bgsave 异步 + 写时复制(copy-on-write)

触发机制 [2] #

  • 手动触发
    • bgsave [3]
    • save 废弃 [3]
  • 自动触发
    • save的相关配置
    • 从节点全量复制,主节点执行bgsave生成RDB并发送给从节点
    • 其他

优点/缺点[2] #

  • 优点
    • 加载RDB恢复数据远远快于AOF的方式
  • 缺点
    • 没办法做到实时持久化

建议 [1] #

  • 数据不能丢失时内存快照和 AOF 的混合使用是一个很好的选择;
  • 如果允许分钟级别的数据丢失,可以只使用 RDB
  • 如果只用 AOF,优先使用 everysec 的配置选项,因为它在可靠性和性能之间取了一个平衡。

参考 #

  1. 《05丨内存快照:宕机后,Redis如何实现快速恢复?》
  2. 《redis开发与运维》 第5章
  3. {% post_link ‘rdb’ %} self