视频加载失败

Redis 数据持久化(RDB)

548 字
3 分钟
Redis 数据持久化(RDB)

Redis 提供 2 种持久化方案:

  • RDB   将在内存中的数据库记录定期生成快照存入磁盘中
  • AOF   将 Redis 的操作日志以追加的方式写入文件,

RDB#

RedisDatabase

将Redis某一时刻的内存数据写入到RDB文件中,并保存到磁盘上。 该文件是一个压缩过的二进制文件,默认文件名为dump.rdb,通过该文件可以还原redis数据库的数据。在Redis服务器启动时,会重新加载dump.rdb文件的数据到内存当中,达到恢复数据目的。

可根据 redis.conf 配置文件中设置rdb文件名 和 保存目录:

# 指定本地数据库文件名(rdb文件的名称),默认值为dump.rdb
dbfilename dump.rdb
# 指定本地数据库存放目录(dump.rdb文件存放目录),rdb、aof文件也会写在这个目录dir /usr/local/var/db/redis/

save#

当某个客户端发送 save 命令后,此时会阻塞当前Redis服务器,在RDB文件创建完成之前是不能处理其他客户端发送的任何命令请求,如果数据量太大会造成长时间阻塞,期间redis无法处理其他请求,线上环境不建议使用。

bgsave#

当某个客户端发送 bgsave 命令后,Redis服务器会执行fork() 函数创建一个子进程,由子进程负责rdb文件创建和写入,期间服务器不会阻塞,可以接受其他客户端的命令请求,**但在fork执行阶段,服务器还会阻塞,无法接受其他客户端命令(一般时间很短)

自动触发#

在以下几种情况时会自动触发生成 RDB 文件:

  • redis.conf 配置文件中达到 save 参数条件
  • 主从复制时,从节点要从主节点进行全量复制,此时会触发 bgsave,生成快照发送到从节点
  • 执行 shutdown,如果没有开启 AOF 持久化,会触发 bgsave
  • 执行 flushall(生成空的 dump.rdb!)

flushall#

flushall 生成的是空dump.rdb文件,目的是覆盖并删除上次备份的快照,防止redis重启时,自动载入并恢复到上一份备份数据!

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Redis 数据持久化(RDB)
https://blog.81vm3.xyz/posts/redis-persistence/
作者
Blume
发布于
2025-10-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Blume
I build interesting things.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
38
分类
5
标签
98
总字数
23,078
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录