REDIS中的RDB与AOF持久化

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不再是一个黑盒。看完这本书再结合业务去重新看上边那本书会有新的收获。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 适时把自己归零 做人,适时把自己“归零”,就会心胸开阔。 人生,难免会有成功与失败、顺境与逆境。顺境时,把自己适时...
    斜倚幽篁阅读 725评论 0 0
  • 想了很久才概括出了主题,也有了大致的轮廓,不谙人事是那段时光的一个状态,那时除了读书便是无休无止的玩闹了,从出生到...
    云淼淼阅读 547评论 0 0
  • 晚上洗澡后,和老公来到阳台晾晒衣服。因为是夏天,我们是手洗各自的衣物。看着水滴滴的落下,我习惯性的拿了一个桶...
    微光半糖阅读 218评论 0 0
  • 现在见到每一个都在街上的女人,都会上下打量,不自觉用“资源”“质量”之类的词掂量她们。。。养成习惯,不分时间地点。。。
    响响_7100阅读 196评论 0 0