专栏首页大数据技术栈Redis 持久化方式——RDB

Redis 持久化方式——RDB

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的备份, 并且不会因为备份失败而影响到之前的备份数据。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kafka —— 如何保证消息不会丢失

    当我们通过 send(msg, callback) 是不是就意味着消息一定不丢失了呢?

    solve
  • Kafka 关于压缩的一点经验

    就压缩而言,对于数据储存应该是一个比较大的优化, 而 Kafka 自然也是支持这种特性的, 但是这里可能会有那么一点坑。 我们主要从:

    solve
  • Hadoop环境搭建--Linux 环境准备

    我这里有两个网卡,一个是循环网卡,这里我们主要关注网卡 eth0:可以看到我的 IP地址外 192.168.6.139,网络掩码是 255.255.255.0

    solve
  • 强化学习 10: 实践中的一些技巧

    1. 我们知道在交叉熵方法中,例如进行一百次实验,那么只需要选择其中最好的25次。这样的采样其实是效率很低的。

    杨熹
  • 一个执行计划异常变更的案例 - 外传之直方图

    今天单位值班,有一些时间可以继续完成这篇连载文章。首先祝所有朋友新年快乐!感谢你们在这一年当中对我文章的关注和指点,来年我们共同继续努力!

    bisal
  • RPC(五)

    度量是一种直观展示的方式,是管理的依据。当各种运动手环、各种步数记录软件出现时,人们才发现原来自己运动量这么少。通过排行榜上的对比才发现自己的懒惰。看到手机上完...

    小闫同学啊
  • Open3D面向机器学习的扩展库

    Open3D-ML是Open3D的一个扩展,用于3D机器学习任务。它建立在Open3D核心库之上,并通过机器学习工具对其进行扩展,以进行3D数据处理。此repo...

    3D视觉工坊
  • Open3D面向机器学习的扩展库

    Open3D-ML是Open3D的一个扩展,用于3D机器学习任务。它建立在Open3D核心库之上,并通过机器学习工具对其进行扩展,以进行3D数据处理。此repo...

    点云PCL博主
  • MongoDB入门系列——7.地理位置索引

    我们平常打开一些App的时候,经常有一个“查询周边景点”的功能,如我在高德里面就查询到了附近的景点。

    陈琛
  • 安永:区块链技术带来机遇还是威胁?

    概要 区块链技术(有时被称作分布式账簿技术)目前是资产服务业领导层日程中的优先项。尽管该技术仍处于发展的初期阶段,但由于其具有简化和加速业务流程、保护数据完整...

    点滴科技资讯

扫码关注云+社区

领取腾讯云代金券