文章目录
9.一篇文章看懂Redis持久化机制
9.1Redis的两种持久化机制
9.1.1为什么有持久化?
由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。
Redis提供两种持久化方式,RDB(Redis DataBase缩写快照)和AOF(Append Only File);
第一种是RDB快照,第二种是AOF日志。
-
RDB:
- RDB快照是一次全量备份
- 快照是内存数据的二进制序列化形式,在存储上非常紧凑
-
AOF:
- AOF是连续的增量备份。
- AOF 日志记录的是内存数据修改的指令记录文本。
9.2RDB机制
9.2.1介绍
- RDB快照就是把数据以快照的形式保存在磁盘上,是某个时间点的一次全量数据备份,以二进制序列化形式的文件存储,并且在存储上非常紧密。
- RDB持久化是指在指定的时间间隔内将内存中的数据集以快照的方式写入磁盘,并保存到一个名为dump.rdb的二进制文件中,也是默认的持久化方式,它恢复时是将快照文件从磁盘直接读到内存里。
9.2.2触发机制
RDB来说持久化触发机制有三种:save、bgsave、自动化触发
(1)save命令触发
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB完成为止,如果数据量大的话会造成长时间的阻塞,所以线上环境一般禁止使用。
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:
(2)bgsave命令触发
执行bgsave命令时,Redis主进程会fork一个子进程来完成RDB的过程,会