Redis的持久化方式:RDB和AOF

一,redis的持久化方式:RDB和AOF


RDB,即Redis Database

RDB持久化方式:在指定的时间间隔内,把内存中的数据快照写入磁盘。

这个是redis默认的持久化方式。数据以二进制的形式保存到文件中,默认的文件名为dump.rdb。



AOF持久化方式:Append Only File,将redis执行的每次写命令记录到文件中,默认的文件名是appendonly.aof。

AOP的执行流程如下:

第一步:命令追加。将redis的写命令追加到缓冲区aof_buf。

第二步:文件写入和文件同步。根据不同的同步策略,将aof_buf中的数据写入磁盘。

第三步:文件重写。定期重写AOF文件,达到压缩的目的。



二,redis持久化的工作原理


什么是持久化呢?就是把redis内存中的数据,保存到磁盘或者其他存储介质中。


三,redis的持久化是否可靠


四,redis是单线程的,如何并发处理多个请求?


答案是:使用操作系统的多进程机制。

什么是操作系统的多进程呢?

简单来说就是Copy On Write。当父进程对redis页面进行修改时,会先把这个页面的数据复制一份,然后在这个副本上进行修改,子进程读取的还是原来的页面,并且这个页面不会被修改,所以子进程可以放心的处理自己的事情,进行数据持久化操作。这就是为什么RDB持久化也叫做快照的原因。


接下来还有一个问题要搞清楚,就是linux系统的父子进程的关系,因为我们还没有很好的解释:单线程的linux如何解决并发请求。

一个线程只能属于一个进程,但是一个进程可以fork生成多个子进程,这就是redis单线程能够处理多个并发请求的原因。


也就是说,redis的设计者,把多线程的复杂性,转给了操作系统。在redis层面,无需考虑多线程问题。


五,redis4.0混合持久化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,670评论 0 2
  • 1、Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定...
    慕凌峰阅读 743评论 0 1
  • 熊孩子该不该打? 残忍???我???呵呵,你无法想象这是出于父亲对于女儿的看法。用残忍这个词来形容我,这是多大的仇...
    七齐启祈阅读 334评论 1 1
  • 从2017年5月1日~8月12日,我坚持做了一件事:每天用手机拍张照片,发在简书里面,目前累积100张。 先说说为...
    恩煦阅读 805评论 6 3

友情链接更多精彩内容