Redis的持久化机制:RDB快照和AOF追加文件

5 篇文章 0 订阅
5 篇文章 0 订阅

       Redis本来作为缓存使用,但是现在数据越来越重要,或者是redis在系统建设中起到了至关重要的环节,特别是在机器学习中训练用的语料及相似度向量和索引,这样就不希望Redis重启之后,或者是宕机之后,数据丢失,所以Redis的持久化机制是我们不得不了解的一个内容。

Redis提供了两种不同的持久化方法来将数据存储在硬盘里面,一种方法叫快照,这样会在磁盘上产生rdb文件。它可以将存在于某一时刻的所有数据都写入硬盘里面;另外一种方法叫做只追加文件,它会在磁盘上产生aof文件,这种持久化方式是在执行命令时,将被执行的写命令复制到硬盘里面。这两种持久化方式既可以同时使用,又可以单独使用。

我们可以在配置文件中找到两种持久化方式的配置,配置文件就是redis.conf:

RDB的配置如下:

参数解释:

save 900 1 : 900秒内有1次写入就持久化
save 300 10: 300秒内有10次写入就持久化
save 60 10000:60秒内有10000次写入就持久化
stop-writes-on-bgsave-error yes : 当bgsave快照操作出错时,为yes时则停止写数据到磁盘
rdbcompression yes :是否压缩
rdbchecksum yes : 是否对rdb数据进行校验
dbfilename dump.rdb : 生成rdb文件名
dir ./ : 持久化文件所在目录,aof文件也会在这个目录产生

AOF配置如下:

参数解释:

appendonly no : 是否开启aof
appendfilename "appendonly.aof" : aof文件名
appendfsync everysec : 命令同步机制,always是总是写入aof文件,并完成磁盘同步,everysec是每一秒写入aof文件,并完成磁盘同步,no是写入aof文件,不等待磁盘同步
no-appendfsync-on-rewrite no : redis在进行aof重写时,是否阻塞主进程对客户端的请求
auto-aof-rewrite-percentage 100 :文件的大小超过基准百分之多少后触发bgrewriteaof
auto-aof-rewrite-min-size 64mb :触发bgrewriteaof的文件最小值
aof-load-truncated yes : redis在恢复时,是否忽略最后一条可能存在问题的指令
aof-use-rdb-preamble yes :是否开启混合持久化机制

我们开启两种持久化机制,并且向redis中写入几个键值:

这样会在配置的dir目录下,产生两个持久化文件:

并且rdb文件是二进制文件,人不可读,而aof文件是接收的指令,人可读的:

      并且还可以看出,aof文件要比rbd文件体积大,而在数据完整性上,aof是要高于rdb文件的,因为rdb文件是在某一时点进行备份,假如在备份时点前一秒宕机了,那么在上一备份时点到宕机点这一时间段的数据就会丢失;而aof只会丢失一秒内的指令,综合两种持久化机制的优缺点,就会使用混合模式进行redis的持久化。宕机之后或者是redis重启之后的数据恢复,就是把rdb文件和aof文件放在配置文件中配置的dir目录下,redis就会根据rdb文件和aof文件进行数据恢复,对于rdb文件,redis直接加载进内存,速度非常快,而aof文件是指令,所以数据恢复起来较慢。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿人小郑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值