Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出会造成服务器中的数据库状态也会消失。所以 Redis 提供了数据持久化功能。Redis支持两种方式的持久化,一种是RDB方式;另一种是AOF(append-only-file)方式。两种持久化方式可以单独使用,也可以将这两种方式结合使用。
视频讲解如下:
这里重点讨论一下Redis的RDB数据持久化。RDB持久化是Redis默认的持久化方式。它是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后再替换之前的文件,并用二进制压缩存储。
视频讲解如下:
一、RDB持久化机制的工作流程
RDB执行快照的时机由以下参数决定:
(请点击右侧“回到旧版”,查看代码)
RDB持久化机制的工作流程如下:
(1)Redis根据配置参数去生存rdb快照文件
(2)Redis将fork一个子进程出来。
(3)由子进程尝试将内存中的数据dump到临时的rdb文件中。
(4)完成rdb快照文件的生成之后,就会去替换旧的快照文件。
从RDB的工作流程可以看出,RDB具有以下的优点和缺点:
Redis监控RDB最直接的方法当然就是使用系统提供的info命令来做了。只需要执行下面一条命令,就能获得Redis关于RDB的状态报告。
(请点击右侧“回到旧版”,查看代码)
二、剖析RDB持久化机制
在rdb.c文件中可以找到创建RDB文件的函数rdbSave(),函数定义如下:
(请点击右侧“回到旧版”,查看代码)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/136909.html