持久化

1.RDB(Redis DataBase):保存某个时间点的全量数据快照

以快照的形式将进程数据持久化到硬盘,RDB创建一个经过压缩的二进制文件,以“.rdb”结尾,内部存储了各个数据库的键值对数据等信息。(相当于备份数据库状态)

触发方式:

image.png

子进程记录接受BGSAVE当时的数据库状态,父进程继续处理接受到的命令,子进程完成文件创建之后发送信号给父进程,父进程处理命令的同时,通过轮询来接受子进程的信号

image.png
  1. 检查是否存在RDB/AOF的子进程存在,若存在,则直接返回

  2. 若不存在,则触发持久化,调用rdbSaveBackground方法执行fork()系统调用创建子进程,fork后,父进程响应其他命令,子进程创建.rdb文件,并存储父进程内存中的数据。

  3. 父进程得到通知,以新文件替换旧的.rdb文件

image.png

2.AOF(Append Only File)

以独立日志的方式,记录了每次写入命令,重启时再重新执行AOF文件中的命令来恢复数据(备份接受到的指令)

image.png
image.png

3.RDB和AOF优缺点

image.png

5.RDB-AOF混合持久化方式

先以RDB格式写入全量数据,再追加增量数据

image.png

Redis实例重启时,使用BGSAVE持久化文件重新构建内容,再使用AOF重放近期的操作指令,实现完整恢复重启之前的状态

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

相关阅读更多精彩内容

  • Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前...
    程序猿小董阅读 2,593评论 0 0
  • 前言 在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复...
    Java架构阅读 7,081评论 3 21
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    胸毛飘逸阅读 2,118评论 0 2
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    Java架构_师阅读 3,188评论 0 2
  • 企业级redis集群架构的特点 海量数据 高并发 高可用 要达到高可用,持久化是不可减少的,持久化主要是做灾难恢复...
    lucode阅读 6,598评论 0 7

友情链接更多精彩内容