美文网首页redis
REDIS中的RDB与AOF持久化

REDIS中的RDB与AOF持久化

作者: 三妖寺方丈 | 来源:发表于2019-09-25 13:47 被阅读0次

redis跑在内存中,如果断电的话,数据就会丢失,所以就有了持久化这个操作。

redis持久化的种类

redis有两种不同粒度的持久化方式:RDB和AOF

RDB方式

一直没有找到RDB的英文全称,但是通过了解RDB的文件格式和存储方式的话,它的英文全称应该是redis database。为何这么说呢?因为RDB持久化的方式是将某个时刻数据库的内存快照保存到文件里,并且文件格式是严格按照redis底层的7种数据类型来紧凑存储的。
RDB由于需要复制整个内存空间,所以操作不能太频繁,因此如果发生数据丢失,这种方式丢失的数据相对来说比AOF多。

AOF方式

AOF是append only file的缩写,表示在文件后边追加,这也言简意赅的描述了这种持久化方式的过程。在redis每收到一个请求的时候,redis不仅执行该请求,还将该请求的命令追加到持久化文件里。由于磁盘IO操作消耗时间,所以会将命令先存放在AOF缓冲区中,当符合条件时,再输入到文件。
但是AOF会存储很多冗余信息,这样会使文件变得很大。为了减小文件,通常会进行AOF重写。重写的时候会fork一个子进程,然后将此时的内存快照以AOF的格式写入文件;为了保持一致性,fork操作后,主进程会将新接收到的命令存放在AOF缓冲区的同时,再存进AOF重写缓冲区,从而保持了数据库的一致性。

相关书籍

  • 《Redis开发与运维》:redis入门时可以浏览命令部分,熟悉运用以后再看作者写的有关业务的段落会更好。
  • 《Redis设计与实现》:redis入门以后,可以通过看这本书知其然并知其所以然,这本书对熟练运用Redis有较大帮助,因为从此时起Redis不再是一个黑盒。看完这本书再结合业务去重新看上边那本书会有新的收获。

相关文章

网友评论

    本文标题:REDIS中的RDB与AOF持久化

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