redis学习-08 rdb快照持久化

Redis的RDB持久化通过快照保存内存数据到磁盘,确保断电后数据不丢失。它在指定时间和写操作后触发,生成二进制文件。RDB优点在于恢复速度快,适合数据冷备,但缺点是可能导致数据丢失。配置项如`save`用于设置触发条件,`bgsave`用于后台异步保存。Redis通过服务器状态的`dirty`计数器和`lastsave`属性判断何时执行bgsave。
摘要由CSDN通过智能技术生成

1、背景:

持久化: 即把数据存储于断电后不会丢失的设备中,通常是硬盘

Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,

这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,

内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。

但是保存在内存中也随之带来了一个缺点,一旦断电或者宕机,那么内存数据库中的数据将会全部丢失。

为了解决这个缺点,Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能。

Redis 支持两种形式的持久化,一种是RDB快照(snapshotting),另外一种是AOF(append-only-file)。

2、概述:

RDB是Redis用来进行持久化的一种方式,是把当前内存中的数据集快照写入磁盘,也就是 Snapshot 快照(数据库中所有键值对数据)。

恢复时是将快照文件直接读到内存里。存的是一个整体的内存映像(即二进制文件)。

3、工作原理:

每隔N分钟或N次写操作后,

从内存dump数据形成rdb文件,

压缩

放在备份目录

注:红色部分可通过参数来配置

4、快照相关参数:

save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。

save 300 10 #必须是300秒之后至少10个关键字发生变化。

save 60 10000 #必须是60秒之后至少10000个关键字发生变化。

(这3个选项都屏蔽,则rdb禁用)

stop-writes-on-bgsave-error yes #后台存储错误停止写。(防止数据不一致)

rdbcompression yes #使用LZF压缩rdb文件。

rdbchecksum yes #存储和加载rdb文件时校验。(导入时对rdb文件进行监测)

dbfilename dump.rdb #设置rdb文件名。

dir ./ #设置工作目录,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值