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.rdbdbfilename 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/相关文章智能推荐
1
微服务之间如何传递 trace
后端开发跨服务传递的是 trace 上下文而非 tracer:HTTP header、gRPC metadata 与 MQ 消息头的标准做法。
2
一致性哈希:consistent 与 rendezvous 的对比
后端开发两种分布式哈希的均匀度与耗时对比结论:节点少选 rendezvous,节点多且时间敏感选 consistent。
3
微服务鉴权与网关职责
后端开发Gateway 负责认证、Service 负责授权:身份上下文透传、反例风险与文件服务落地场景。
4
Kafka 的分区与副本机制
后端开发Kafka Broker/Topic/分区的关系,以及 leader-follower 副本的读写与冗余备份机制。
5
本地负缓存
后端开发把不存在/失败的查询结果缓存在本地内存中,短时间内直接返回,避免重复打到下游系统。
随机文章随机推荐











