《redis》6-redis宕机之后快速恢复数据

本文介绍了Redis中的RDB快照机制,作为数据恢复的一种方式。RDB是内存数据的快照,通过bgsave命令在后台非阻塞方式生成,以保证在宕机后能快速恢复数据。同时,文章提到了快照生成时可能的数据丢失问题,以及Redis如何结合AOF日志以提高数据完整性。
摘要由CSDN通过智能技术生成

上一节讲到redis为了保证高可用,使用了AOF机制来确保数据不丢失,宕机之后,如果想要恢复数据,只能顺序执行aof的日志。但是对于4G满的redis数据,逐条执行aof日志时间太长,有没有其他方式呢?redis又引入了另外一个方式:RDB

RDB:redis database

RDB其实就是redis内存数据的快照-snapshot。这个快照保存的是某一个时间节点,redis内容中所有的数据,生成RDB文件,我们把它保存在文件系统,然后在宕机之后可以读取到内存中,完成数据的快速恢复。

如何生成快照:

在redis中,bgsave命令,可以使用fork子线程的模式,在不阻塞主线程的情况下,生成快照。save命令则是使主线程生成快照,这样就意味着要暂停服务

快照的机制其实比较关注两点:

  1. 记录哪些信息:因为redis是内存存储系统,只保存了key-value,所以redis的数据要全量保存
  2. 什么时候拍摄快照:如果为了保证数据丢失的少,要频繁的生成快照,在fork的时候,主线程要暂时停顿一下,而且多个自线程可能会在快照生成过程中争用RDB文件,造成并发问题
  3. 会不会阻塞主线程:使用bgsav
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值