Redis之数据持久化RDB与AOF

本文深入探讨了Redis的两种数据持久化方式:RDB和AOF。RDB通过定期保存数据快照,而AOF则记录所有历史操作,两者各有优劣。RDB可能在系统崩溃时丢失最新数据,但效率较高;AOF虽能完整保留数据,但文件体积大,恢复速度慢。

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

内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数据就会丢失不见了。这样的数据库并不是一个可靠的数据库。

在这里插入图片描述

一、需要了解的基础
1、Redis实现数据持久化的两种实现方式:

RDB:指定的时间间隔内保存数据快照

AOF:先把命令追加到操作日志的尾部,保存所有的历史操作

二、RDB—数据快照(Snapshot) 实现 Redis数据持久化(默认方式)

缺点:

因为是特定条件下进行一次持久化(每隔一段时间),就可能会导致一旦redis崩溃,再次回复时,可能会导致部分数据丢失。
注:如果设置的备份时间间隔较短,比较耗服务器性能,如果设置的备份时间间隔较长,又可能会导致数据恢复时部分数据丢失

步骤如下:

1、编辑 redis.conf
注:使用whereis redis命令查看redis安装在哪个位置,然后进入redis安装目录的etc目录下,编辑redis.conf。

2、默认备份的时间间隔 redis.conf
当至少有一个key变更时,900秒后会执行一次SAVE。其他配置同理,有10次变更,300秒后保存一次…,自动触发

save 900 1
save 300 10
save 60 10000

3、默认备份的文件名称和备份的RDB文件位置 redis.conf
在这里插入图片描述
5、像这样,就是其中的备份文件
dump.rdb 文件是一个二进制文件,无法直接正常打开。
在这里插入图片描述
6、当然,也可以主动触发保存redis数据快照,操作如下
在这里插入图片描述

三、AOF持久化方案日志追加(Append-Only)

AOF相当于一个操作的日志记录,每次对于数据的变更都会记录追加到AOF日志。当服务启动的时候就会读这些操作日志,重新执行一次操作,从而恢复原始数据。所以存的数据非常完整

1、相比于RDB持久化方案的优点
(1)数据非常完整,故障恢复丢失数据少
(2)可对历史操作进行处理

缺点

(1)因为AOF模式要把每一步redis命令都记录下来,所以就导致文件的体积会很大
(2)而且会导致速度低于RDB,并且恢复速度慢

2、如何开启AOF持久化模式
将redis.conf 配置文件中的appendonly 参数改为yes 后,则redis开始启动AOF数据持久化模式
在这里插入图片描述
设置AOF同步的方式,这里设置的默认的每秒同步一次
在这里插入图片描述
3、开启AOF同步模式后,备份文件是这样的

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值