《Redis设计与实现》第十章总结一:RDB原理

本文详细介绍了Redis的RDB持久化机制,包括RDB文件的创建(SAVE与BGSAVE命令的区别)和载入过程,以及服务器如何自动执行BGSAVE的原理,涉及到save选项、dirty计数器和lastsave属性在检查保存条件中的作用。
摘要由CSDN通过智能技术生成

2 RDB持久化

服务器的数据库状态:服务器中的非空数据库以及它们的键值对
例子:包含三个非空数据库的Redis服务器,这三个数据库以及它们的键值对就是该服务器的数据库状态:
在这里插入图片描述
RDB:在某个时间点上将数据库状态保存到一个RDB文件上,也可以将RDB文件还原为数据库状态

注:因为AOF文件的更新频率通常比RDB高,所以服务器如果开启了AOF持久化功能,则优先使用AOF文件来还原数据库状态

2.1 RDB文件的创建与载入

2.1.1 创建

执行时期:使用SAVE和BGSAVE命令

  • SAVE

1.状态:此命令会阻塞Redis服务器进程,直到RDB文件创建完毕

  • BGSAVE

1.状态:此命令会派生出一个子进程,由子进程负责创建RDB文件,服务器进程(父进程)继续处理命令请求
不过在处理命令请求时,SAVE、BGSAVE、BGREWRITERAOF这三个命令的方式和平时不同,如下图,显示了它们之间的运行关系及原因
在这里插入图片描述
2.实际工作函数:rdb.c/rdbSave函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值