Redis——RDB和AOF持久化
2019-03-25 12:36
309 查看
一、RDB(Redis DataBase)
每隔一段时间就将内存上的数据存到磁盘上。
例:save 900 1 900秒内,对数据库进行了至少1次修改
save 300 10 300秒内,对数据库进行了至少10次修改
save 60 10000 60秒内,对数据库进行了至少10000次修改
Redis的周期性函数severCron默认每隔100毫秒执行一次,对正在运行的服务器做各种维护,其中一项工作就是检查save选项所设置的保存条件是否已经满足。若满足自动执行BGSAVE命令。
RDB文件的创建
SAVE命令:直接阻塞进程,直到文件创建完毕。
BGSAVE命令:派生出一个子进程来创建RDB文件。
RDB文件的载入
服务器在启动时若存在RDB文件,则自动载入。在载入RDB文件期间,服务器会一直处在阻塞状态。
若服务器开启了AOP持久化功能,则Redis会优先使用AOF来还原数据库状态。
二、AOF(Append Only File)
将redis执行过的所有写指令记录下来,保存在AOF缓冲区中,再用不同的同步策略将文件同步到磁盘,载入时通过伪客户端执行AOF文件中的命令。
同步策略:
AOF重写
因为采用了追加方式,如果不做任何处理的话,AOF文件会变得越来越大,为此,redis提供了AOF文件重写(rewrite)机制。
重写步骤:
1、创建(fork)一个“重写子进程”,读取现有的AOF文件,并将其包含的指令进行分析压缩并写入到一个临时文件中。
2、与此同时,将客户端执行的写命令,一边累积到内存缓冲区中,一边继续写入到原有的AOF文件中。
3、将缓冲区的命令写到新的AOF文件中,替换原有的AOF文件。
三、对比
RDB 恢复数据集的速度也要比 AOF 恢复的速度要快
AOF数据完整性较高
相关文章推荐
- redis的持久化——RDB和AOF
- Redis持久化之 RDB & AOF
- redis的持久化(RDB和AOF )的比较
- redis持久化AOF与RDB
- redis持久化RDB和AOF
- redis的持久化RDB和AOF
- Redis存储方式RDB和AOF介绍及持久化的重要性
- Redis持久化存储(AOF与RDB两种模式)
- redis主从集群,master开启了持久化AOF与RDB,遇到集群脑裂或者异步复制master宕机,是否会造成数据丢失问题?
- Redis持久化(RDB和AOF)
- redis持久化RDB和AOF
- Redis持久化方式AOF和RDB
- Redis持久化————AOF与RDB模式
- redis持久化AOF与RDB配置
- redis持久化RDB和AOF
- redis 持久化 RDB 和 AOF
- redis学习-持久化存储rdb和aof的比较
- Redis持久化(RDB和AOF)
- Redis持久化----RDB和AOF 的区别
- 进阶的Redis之数据持久化RDB与AOF