全国服务热线:400-0358-011

位置:成都达内教育IT培训机构 > 学校动态 > Redis中RDB与AOF合体混合持久化

Redis中RDB与AOF合体混合持久化

来源:成都达内教育IT培训机构时间:2021/9/10 9:32:42

  Redis中RDB与AOF合体混合持久化
  RDB和AOF
  这两种技术都会用各用一个日志文件记录信息,但记录的内容却有所不同。
  AOF文件的内容是操作命令;
  RDB文件的内容是二进制数据。
  RDB快照
  所谓的快照,就是记录某一个瞬间东西,比如当我们给风景拍照时,那一个瞬间的画面和信息就记录到了一张照片。
  因此,RDB快照是记录某个时刻的内存数据,记录的是实际数据,而AOF文件记录的是命令操作的日志,而非实际数据。

  所以RDB在Redis恢复数据时要比AOF更有效,因为直接将RDB文件读取到内存中,并不需要像AOF那样还需要额外执行操作命令的步骤才能恢复数据。

Redis中RDB与AOF合体混合持久化

  RDB与AOF合体
  虽然RDB比AOF数据恢复得更快,但对快照频率的把握并不好:
  l假如频率太低,两次快照间一旦服务器出故障,可能会比较多的数据丢失;
  l如果频率太高,频繁写入磁盘和创建子进程将增加额外的性能开销。
  那么,有没有哪一种方法既具有RDB恢复的优点,又具有AOF丢失数据少的优点?
  这当然是RDB和AOF的结合,这种方法是Redis4.0提出的,这种方法叫做混合使用AOF日志和内存快照,也称为混合持久化。
  如果想要开启混合持久化功能,可以在Redis配置文件将下面这个配置项设置成yes:
  aof-use-rdb-preamble yes
  混合持久化工作在AOF日志重写过程。
  打开混合持化式时,当AOF重写日志时,由fork出来的重写子进程首先以RDB方式将与主线程共享的内存数据写入AOF文件中,然后将主线程处理的操作命令记录在重写缓冲区中,重写缓冲区中的增量命令以AOF方式写入AOF文件,在完成写入之后,通知主进程将新的包含RDB格式的AOF文件替换为旧的的AOF文件。
  这就是说,使用混合持久化,AOF文件的前半部分是RDB格式的全量数据,后半部分是AOF格式的增量数据。
  这些好处是当重新启动Redis加载数据时,由于前半部分是RDB内容,所以加载速度会很快。
  这样的好处在于,重启Redis加载数据的时候,由于前半部分是RDB内容,这样加载的时候速度会很快。
  加载完RDB的内容后,才会加载后半部分的AOF内容,这里的内容是Redis后台子进程重写AOF期间,主线程处理的操作命令,可以使得数据更少的丢失。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3857/news/408004/违者必究! 以上就是成都达内教育IT培训机构 小编为您整理 Redis中RDB与AOF合体混合持久化的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-0358-011