Redis持久化之RDB

RDB持久化是把当前进程数据生成快照保存到硬盘,触发方式分为手动触发和自动触发。
手动触发
save命令:会阻塞当前Redis线程,知道RDB过程结束,如果数据量大,会阻塞很长时间,线上环境不建议使用。
bgsave命令:Redis进程执行fork操作创建子进程,RDB过程有子进程负责,完成后自动结束。这样阻塞只发生在fork阶段,一般情况很短。
很明显bgsave是对save做出的优化处理,现在一般都采用bgsave,save命令基本无人使用了。
自动触发
在redis的配置文件中配置 save m n 表示在m秒内存在n次修改时,自动触发bgsave。

流程说明

bgsave的流程见下图


1.执行bgsave命令,Redis父进程判断当前是否存在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。
2.父进程执行fork操作创建子进程,fork操作过程中父进程会阻塞。
3.父进程fork完成后,不在阻塞父进程,可以继续其他操作。
4.子进程创建RDB文件,根据父进程内存生成临时快照文件,完成后对原有文件进行原子替换。
5.进程通知父进程完成操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值