4

什么是RDB和AOF

 1 year ago
source link: https://blog.51cto.com/learningfish/5446095
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

什么是RDB和AOF

原创

爱学习的大鱼 2022-07-06 09:09:38 博主文章分类:SQL ©著作权

文章标签 redis 持久化 数据集 文章分类 NoSQL 数据库 yyds干货盘点 阅读数159

RDB:Redis DataBase,在指定的时间间隔内将内存中的数据集快照写⼊磁盘,实际操作过程是fork⼀个⼦进程,先将数据集写⼊临时文件,写入成功后,再替换之前的⽂件,用⼆进制压缩存储。

优点:

  • 整个Redis数据库将只包含⼀个⽂件dump.rdb,方便持久化。
  • 容灾性好,方便备份。
  • 性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是 IO 最大化。使用单独子进程来进行持久化,主进程不会进⾏任何 IO 操作,保证了 redis 的高性能
  • 相对于数据集⼤时,比AOF 的启动效率更高。

缺点:

  • 数据安全性低。RDB 是间隔⼀段时间进⾏持久化,如果持久化之间 redis 发⽣故障,会发⽣数据丢失。所以这种⽅式更适合数据要求不严谨的时候。
  • 由于RDB是通过fork⼦进程来协助完成数据持久化⼯作的,因此,如果当数据集较⼤时,可能会导致整个服务器停⽌服务几百毫秒,甚至是1秒钟。

AOF:Append Only File,以日志的形式记录服务器所处理的每⼀个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开⽂件看到详细的操作记录

优点:

  • 数据安全,Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事实上,每秒同步也是异步完成的,其效率也是非常高的,所差的是⼀旦系统出现宕机现象,那么这⼀秒钟之内修改的数据将会丢失。而每修改同步,我们可以将其视为同步持久化,即每次发⽣的数据变化都会被立即记录到磁盘中。
  • 通过 append 模式写⽂件,即使中途服务器宕机也不会破坏已经存在的内容,可以通过 redis check-aof 工具解决数据⼀致性问题。
  • AOF 机制的 rewrite 模式。定期对AOF⽂件进行重写,以达到压缩的目的

缺点:

  • AOF 文件比 RDB 文件大,且恢复速度慢。
  • 数据集大的时候,比rdb 启动效率低。
  • 运行效率没有RDB高, AOF⽂件比RDB更新频率高,优先使用AOF还原数据,AOF比RDB更安全也更大,RDB性能比AOF好,如果两个都配了优先加载AOF。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK