前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 持久化方式——RDB

Redis 持久化方式——RDB

作者头像
solve
发布2020-02-13 00:01:16
3680
发布2020-02-13 00:01:16
举报
文章被收录于专栏:大数据技术栈大数据技术栈

RDB

RDB是什么?

Redis持久化数据的两种方式之一, 另外一种是AOF。 Redis会定期保存数据快照至一个rbd文件中, 并在启动时自动加载rdb文件, 恢复之前保存的数据。

RDB 触发时机

  • 手动触发 可以通过SAVE或者BGSAVE进行RDB备份
    • SAVE 直接调用 rdbSave , 阻塞 Redis 主进程, 直到保存完成为止。 在主进程阻塞期间, 服务器不能处理客户端的任何请求。
    • BGSAVE fork 出一个子进程, 子进程负责调用 rdbSave , 并在保存完成之后向主进程发送信号, 通知保存已完成。 Redis 服务器在BGSAVE 执行期间, 仍然可以继续处理客户端的请求。
  • 自动触发 可以在Redis的配置文件中进行设置, 以达到满足条件自动触发RDB备份。
    • 配置方式 在配置文件中加上save 60 1000 , 则表示 60秒内如果数据变更达到1000次, 则满足触发RDB备份的条件。 配置方式可以加入多条, 满足任意条件, 则触发RDB备份

RDB的优缺点

  • 优点
    1. 对性能影响最小, Redis在保存RDB快照时会fork出子进程进行, 几乎不影响Redis处理客户端请求的效率。
    2. 恢复数据的速度快, 相对于AOF,具有更快的数据恢复速度。
    3. 适合数据库容灾备份, 生产的RDB文件可以移动到一些高可靠的文件系统, 比如HDFS。
  • 缺点
    1. 不适合频繁触发备份, 所以没有备份的数据在宕机的时候会丢失。
    2. Redis如果存储的数据体量太大, Fork子进程的时候会影响到Redis的可用性
    3. 二进制文件, 无法人工读懂, 不能直接进行人工干预。

与其说优缺点, 我们其实不如思考适用场景, 没有完美的技术, 只要用到合适的场景, 他就是对的。

RDB文件生产过程

  1. Redis fork 一个子进程
  2. 子进程将数据写入一个临时的RDB文件
  3. 当子进程完成对临时的RDB文件的写入, 将完成的RDB文件来覆盖 旧的RDB文件

这样就完成了一次RDB的备份, 并且不会因为备份失败而影响到之前的备份数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RDB
    • RDB是什么?
      • RDB 触发时机
        • RDB的优缺点
          • RDB文件生产过程
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档