RDB的执行原理

RDB(Redis数据备份文件):也叫做Redis数据快照,将内存中的数据以快照的形式记录到磁盘中,当Redis实例出现故障重启时,会从磁盘中读取快照文件,恢复数据。

Redis主进程开启RDB,会阻塞所有命令。save

开启子进程执行RDB,避免了主进程受到影响。(开启子进程时会阻塞主进程,但是时间很短,可以忽略不计)。 bgsave

save 900 1  解释900秒内至少修改一次一个key,则会bgsave

RDB的执行原理

bgsave开始会fork主进程得到子进程,子进程会共享主内存数据,完成fork后读取内存数据写入磁盘中的RDB文件。

补充:在Linux系统中,进程是无法直接操作物理内存的,操作系统给每个进程维护了一个虚拟内存。同时维护了一个虚拟内存和物理内存之间的关系表(页表)。

页表:记录虚拟地址与物理地址的映射关系。

子进程只拷贝了页表,把映射关系拷贝给了子进程。极快

当主进程进行修改数据,子进程此时只读,很有可能会出现脏数据。

fork采用了copy-on-write技术:

  1. 当主进程执行读操作时,访问共享内存。
  2. 当主进程执行写操作时,则会拷贝一份数据,执行写操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值