Redis持久化-RDB

Redis的RDB(Redis Database)是一种内存快照技术,用于持久化数据。通过save和bgsave命令生成,bgsave在后台子进程中执行,避免阻塞主线程。RDB在恢复数据时速度较快,但快照频率需谨慎设置以平衡空间消耗和数据丢失风险。其优点包括快速数据恢复和无重写导致的效率下降,缺点则在于快照频率控制困难和可能的空间浪费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RDB

内存快照

概念:就是指内存中的数据某一个时刻中的状态记录,它实现一种把某一个时刻的状态记录到文件中,与AOF不同的是,它记录的是数据而并不是操作的命令

快照的使用

Redis 提供了两个命令来生成 RDB 文件,分别是 save 和 bgsave,他们的区别就在于是否在「主线程」里执行

  • 执行了 save 命令,就会在主线程生成 RDB 文件,由于和执行操作命令在同一个线程,所以如果写入 RDB 文件的时间太长,会阻塞主线程
  • 执行了 bgsava 命令,会创建一个子进程来生成 RDB 文件,这样可以避免主线程的阻塞
  • Redis 还可以通过配置文件的选项来实现每隔一段时间自动执行一次 bgsava 命令,默认会提供以下配置
save 900 1
save 300 10
save 60 10000

产生快照的过程

  • 全量快照

在这里插入图片描述

  • 全量快照的改进,再做一次全量快照之后,记录哪些数据已经被修改了,下一次重那些数据开始快照,但是会照成很大的空间消耗
    在这里插入图片描述

RDB的优缺点

优点

  • 因为RDB记录的是数据,所以如果利用RDB来恢复数据的话会被AOF来得快很多
  • RDB没有重写,不会造成降低效率
    缺点:
  • 快照的频率不好控制,如果快照的频率过快会导致会产生很大的空间消耗,频率太低又会导致数据的丢失
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值