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

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

被折叠的 条评论
为什么被折叠?



