Redis数据安全性分析之RDB详解

1.RDB 能干什么?

RDB 可以在指定的时间间隔,备份当前时间点的内存中的全部数据集,并保存到磁盘文件中。通常是 dump.rdb 文件。

在数据恢复时,将瓷片中的快照文件直接读回到内存里。

由于 RDB 存的是全量数据,甚至可以直接用 RDB 来传递数据,例如如果需要从一个 Redis 服务中间数据同步到另一个 Redis 服务(最好是同版本),就可以直接复制最近的 RDB 文件。

2 相关配置

  • save 策略:核心配置
  • dir 文件目录
  • dbfilename 文件名,默认 dump.rdb
  • rdbcompression 是否启用 RDB 压缩,默认 yes。如果不想消耗 CPU 进行压缩,可以设置为 no
  • stop-writes-oin-bgsave-error 默认 yes。如果配置成 no,表示不在乎数据不一致,在快照写入失败时,也能确保 Redis 继续接受新的写入请求。
  • rdbchecksum 默认 yes。在存储快照后,可以让 Redis 使用 CRC64 算法进行数据校验,但是这样做会增加大约 10%的性能消耗,如果希望获得最大的性能提升,可以关闭此功能。

3.触发 RDB 备份的时机

1.到达配置文件中默认的快照配置时间时,会自动触发 RDB 快照

2.手动执行 save 或者 bgsave 指令时,会触发 RDB 快照。其中 save 方法会在备份期间阻塞主线程。bgsave 则不会阻塞主线程,但是它会 fork 一个子线程进行持久化,这个过程中会将数据复制一份,因此会占用更多内存和 CPU。

3.主从复制时会触发 RDB 备份。

4.RDB 持久化的优缺点

4.1.优点

1.RDB 文件非常紧凑,非常适合定期备份数据。

2.RDB 快照非常适合灾难恢复。

3.RDB 备份时性能非常快,对主线程的性能几乎没有影响。RDB 备份时,主线程只需要启动一个负责数据备份的子线程即可,所有的备份工作都有子线程完成,这对主线程的 IO 性能几乎没有影响。

4.与 AOF 相比,RDB 在进行大数据量重启时会快很多。

4.2.缺点

  • RDB 不能对数据进行实时备份,所以总会有数据丢失的可能。
  • RDB 需要 fork 子线程的数据写入情况,在 fork 过程中,需要将内存中的数据克隆一份,如果数据量太大,或者 CPU 性能不是很好,RDB 方式就容易造成 Redis 服务短暂停用。相比之下 AOF 也需要进行持久化,但是频率低并且可以调整日志重写的频率。
相关推荐
zyseo82 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
xiaogai_gai4 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
数据工匠老o4 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
这个DBA有点耶5 小时前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182626 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹6 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿6 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪6 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛6 小时前
导出mysql数据结构
数据库·mysql
GlobalTradercrb6 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo