美文网首页
Redis 持久化方式 -RDB

Redis 持久化方式 -RDB

作者: Java李太白 | 来源:发表于2020-12-09 21:28 被阅读0次

针对Redis的话题估计有些读者已经开始反感了,昨天还是有一些读者困惑,这就具体讲述下 **Redis持久化方式-RDB **的实现方式~

触发时机

手动触发:

  • save: 阻塞当前 Redis 服务器, 直到 RDB 过程完成为止, 对于内存比较大的实例会造成长时间阻塞, 线上环境不建议使用

  • bgsave: Redis 进程执行 fork 操作创建子进程, RDB 持久化过程由子进程负责, 完成后自动结束。阻塞只发生在 fork 阶段, 一般时间很短

自动触发 RDB 的持久化机制, 例如以下场景:

  • 使用 save 相关配置, 如 “save m n”。表示 m 秒内数据集存在 n 次修改时, 自动触发 bgsave。

  • 如果从节点执行全量复制操作, 主节点自动执行 bgsave 生成RDB文件并发送给从节点, 更多细节见6.3节介绍的复制原理。

  • 执行 debug reload 命令重新加载 Redis 时, 也会自动触发 save 操作。(不清楚是 save 还是 bgsave)

  • 默认情况下执行 shutdown 命令时, 如果没有开启 AOF 持久化功能则自动执行 bgsave。

流程说明

RDB的文件处理

**保存 **: RDB 文件保存在 dir 配置指定的目录下, 文件名通过 dbfilename 配置指定。可以通过执行 config set dir {newDir}config set dbfilename {newFileName} 运行期动态执行, 当下次运行时 RDB 文件会保存到新目录。

**压缩 **: Redis 默认采用 LZF 算法对生成的 RDB 文件做压缩处理, 压缩后的文件远远小于内存大小, 默认开启, 可以通过参数 config set rdbcompression {yes|no} 动态修改。

**校验 **: 如果 Redis 加载损坏 的RDB 文件时拒绝启动, 并打印如下日志:

Short read or OOM loading DB. Unrecoverable error, aborting now.

这时可以使用 Redis 提供的 redis-check-dump 工具检测 RDB 文件并获取对应的错误报告。

RDB的优缺点

**优点 **:

  • RDB 是一个紧凑压缩的二进制文件, 代表 Redis 在某个时间点上的数据快照。非常适用于备份, 全量复制等场景

  • Redis 加载 RDB 恢复数据远远快于 AOF 的方式

**缺点 **:

  • RDB 方式数据没办法做到实时持久化/秒级持久化。因为 bgsave 每次运行都要执行 fork 操作创建子进程, 属于重量级操作, 频繁执行成本过高

  • RDB 文件使用特定二进制格式保存, Redis 版本演进过程中有多个格式的 RDB 版本, 存在老版本 Redis 服务无法兼容新版 RDB 格式的问题

推荐阅读:

字节跳动总结的设计模式 PDF 火了,完整版开放分享

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

如果能听懂这个网约车实战,哪怕接私活你都可以月入40K

为什么阿里巴巴的程序员成长速度这么快,看完他们的内部资料我懂了

程序员达到50W年薪所需要具备的知识体系。

关于【暴力递归算法】你所不知道的思路

看完三件事❤️

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

关注公众号 『 Java斗帝 』,不定期分享原创知识。

同时可以期待后续文章ing🚀

相关文章

  • 2020-02-21 记录redis(8)

    redis持久化,两种持久化方式: RDB方式 AOF方式 持久化的使用方式: RDB 优势: 1、redis的数...

  • Redis的持久化方式:RDB和AOF

    一,redis的持久化方式:RDB和AOF RDB,即Redis Database RDB持久化方式:在指定的时间...

  • Redis持久化

    Redis持久化方式有两种:RDB和AOF。 1 RDB持久化 RDB(Redis Database)持久化是把当...

  • redis-2

    redis-2 redis的持久化 Redis 提供了 RDB 和 AOF 两种持久化方式。 RDB RDB 是把...

  • 03-redis持久化

    Redis持久化 两种方式持久化: RDB持久化 - 全量 AOF持久化 - 增量 RDB持久化 RDB文件的生成...

  • Redis持久化(三)

    Redis持久化方式 Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件): RDB持久化方...

  • redis mongodb持久化的方式

    redis持久化方式(两种) RDB持久化 redis提供了RDB持久化的功能,这个功能可以将redis在内存中的...

  • Redis 持久化

    Redis 持久化 RDB RDB 持久化方式类似于快照,执行 SAVE BGSAVE命令时可以触发 RDB 持久...

  • Redis的持久化与数据淘汰策略

    1 Redis的持久化机制:RDB和AOF RDB就是快照方式,AOF是记录操作日志的方式。目前Redis持久化的...

  • Redis持久化是如何做的?RDB和AOF对比分析

    redis持久化2种方式 Redis持久化有 RDB 和 AOF两种方式 一、redis持久化----两种方式1...

网友评论

      本文标题:Redis 持久化方式 -RDB

      本文链接:https://www.haomeiwen.com/subject/dwskgktx.html