05 内存快照:宕机后,Redis如何快速恢复?

在 Redis 中的三种不同方式的持久化策略中,除了 Always 持久化策略性能不太好以外,其他两个策略的性能方面没有太大的影响,但是由于采用的 AOF 日志记录的是操作命令本身,并没有记录键值对数据,因此在数据恢复的时候就需要根据 AOF 日志中的操作一遍一遍地执行,其恢复的效率很低。那么在 Redis 中有没有即可靠性高,又可以在宕机的时候,实现快速恢复数据?

一、RDB 快照持久化方式

Redis 在持久化功能上有两种实现方式,一种是上篇说到的 AOF 日志,另一种就是 RDB 内存快照的方式。RDB 也就是 Redis DataBase 的简称。也就是将内存中某一时刻的数据的状态记录下来做成一个快照,其中存储的就是键值对数据本身,而不是 AOF 日志中记录的操作命令。

1、生成 RDB 文件中记录的数据的范围是多大?

由于 RDB 记录的是某一时刻内存中的数据,因此可以直接将磁盘中记录的 RDB 快照文件读入内存即可完成该快照时刻的数据恢复,因此 RDB 快照记录的是内存中的所有数据。

2、生成 RDB 文件会不会阻塞主线程?

由于 RDB 文件记录的是某一时刻内存中的所有数据,因此需要长时间的进行磁盘写操作,如果 RDB 操作会阻塞主线程,就会导致 Redis 长时间不能正常地提供服务,使其 Redis 的性能不好,而 Redis 提供了两种命令来生成 RDB 文件。

  1. save(保存):使用主线程来执行 RDB 操作,会长时间地阻塞主线程。
  2. bgsave:主线程 fack 一个子进程,让子进程负责
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值