Redis3-RDB快照

1.如何生成快照

1.save

主线程来执行,但生成快照时间比较久,会阻塞主线程,导致写命令无法执行

2.bgsave

子线程来执行,所以不会阻塞主线程,写命令可以执行

redis快照特点:

全量快照,会把所有的数据都存到磁盘中,所以执行快照太频繁,会降低性能。但执行快照太少,可能会丢失很多数据。

一般设置5分钟保存一次快照

2.bgsave的时候,数据可以修改吗

可以

因为COW

快照,顾名思义,当前时刻的照片,所以快照保存的是当时的数据,主线程修改数据可复制一份它要修改的数据,然后在复制的数据上进行修改。子线程仍然复制之前的数据。

3.混合持久化

发生在 AOF 日志重写过程

AOF 重写日志时,fork出来的 重写子进程 会先将与主线程共享的内存数据以RDB的方式写入到新的AOF文件,然后主线程处理的操作命令仍然会被记录到AOF重写缓冲区里面,重写缓冲区里的增量数据会以AOF的方式写入到AOF文件中,写完后通知主进程将新的 含有 RDB格式和AOF格式的AOF文件替换掉就的AOF文件。

新的AOF文件,前半部分是RDB格式的全量数据,后半部分是AOF的增量数据

好处,重启Redis进行数据加载的时候,前半部分是RDB快照,数据恢复快。后面是重写期间,记录的主线程操作命令,AOF内容,使得数据更少丢失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值