37、RDB的优缺点?

优点:RDB是一个非常紧凑(compact)的文件,它保存了Redis在某个时间点上的数据集。这种
文件非常适合用于进行备份:比如说,你可以在最近的24小时内,每小时备份一次RDB文件,并
且在每个月的每一天,也备份一个RDB文件。这样的话,即使遇上问题,也可以随时将数据集还原
到不同的版本。RDB非常适用于灾难恢复(disaster recovery):它只有一个文件,并且内容都非
常紧凑,可以(在加密后)将它传送到别的数据中心,或者亚马逊S3中。RDB可以最大化Redis的
性能
:父进程在保存RDB文件时唯一要做的就是fork出一个子进程,然后这个子进程就会处理接下
来的所有保存工作,父进程无须执行任何磁盘I/O操作。RDB在恢复大数据集时的速度比AOF的恢
复速度要快

缺点:如果你需要尽量避免在服务器故障时丢失数据,那么RDB不适合你。虽然Redis允许你设置
不同的保存点(save point)来控制保存RDB文件的频率,但是,因为RDB文件需要保存整个数据
集的状态
,所以它并不是一个轻松的操作。因此你可能会至少5分钟才保存一次RDB文件。在这种
情况下,一旦发生故障停机,你就可能会丢失好几分钟的数据。每次保存RDB的时候,Redis都要
fork()出一个子进程,并由子进程来进行实际的持久化工作。在数据集比较庞大时,fork()可能会非
常耗时,造成服务器在某某毫秒内停止处理客户端;如果数据集非常巨大,并且CPU时间非常紧张
的话,那么这种停止时间甚至可能会长达整整一秒。

posted @   似梦亦非梦  阅读(42)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示