Redis第二讲 Redis数据持久化AOF和RDB

本文详细介绍了Redis的两种持久化机制:RDB快照(通过save或bgsave命令生成)和AOF日志(记录所有修改命令)。AOF提供了更高的数据安全性,但可能影响性能;而RDB在数据丢失风险较高,但启动速度快。通过AOF重写可以优化文件大小,AOF与RDB各有优缺点,适合不同业务场景。

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

RDB快照(snapshot)

在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集

# save 60 1000    //关闭RDB只需要将所有的save保存策略注释掉即可
60 秒内有至少有 1000 个键被改动

还可以手动执行命令生成RDB快照,进入redis客户端执行命令save或bgsave可以生成dump.rdb文件,每次命令执行都会将所有redis内存快照到一个新的rdb文件里,并覆盖原有rdb快照文件。
注意:bgsave是后台现场执行的,使用save会阻塞redis主进程

bgsave和save对比

在这里插入图片描述

AOF(append-only file)

从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化,将修改的每一条指令记录进文件appendonly.aof中(先写入os cache,每隔一段时间fsync到磁盘)
比如执行命令**“set name lisi”**,aof文件里会记录如下数据:

*3
$3
set
$4
name
$4
lisi

这是一种resp协议格式数据,星号(*)后面的数字代表命令有多少个参数,$号后面的数字代表这个参数有几个字符。

注意,如果执行带过期时间的set命令,aof文件里记录的是并不是执行的原始命令,而是记录key过期的时间戳
比如执行“set name lisi ex 1000”,对应a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员路同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值