详解Redis持久化(上篇——RDB持久化)
Redis持久化的作用和意义
Redis 持久化是一种机制,用于将内存中的数据写入磁盘,以保证数据在服务器重启时不会丢失。持久化是为了解决内存数据库(如 Redis)在服务器关闭后,数据丢失的问题。 Redis 持久化的主要作用和意义为以下:
-
数据保护: 持久化确保在发生故障或服务器重启时,已存储在内存中的数据可以被恢复。这对于需要长期存储和保护数据的应用场景非常重要。
-
持久存储: 将数据持久化到磁盘上,可以在服务器重新启动时重新加载数据,从而确保数据的持久存储。
-
数据恢复: 持久化提供了一种在系统崩溃或断电的情况下能够快速恢复数据的方法。通过定期保存快照或者记录每次写操作,可以最大限度地减少数据丢失的可能性。
-
备份和迁移: 持久化的数据可以被用于创建备份,以便在需要时还原数据。同时,可以通过将持久化文件迁移到其他服务器,实现数据的迁移和共享。
-
避免内存溢出: 如果 Redis 中的数据集非常大,超过了系统的可用内存,那么持久化可以防止因内存溢出而导致的数据丢失。
Redis 提供了两种主要的持久化方式:
-
RDB 持久化: 将 Redis 数据在指定时间间隔内写入磁盘,生成一个快照文件。这种方式适用于数据集较大时的快速备份和还原。
-
AOF 持久化: 将每次写操作追加到一个文件中,以记录数据库状态的变化。这种方式适用于需要更精确的数据恢复,但相对来说,文件体积可能较大。
而我们这篇文章就会来详细解读RDB持久化的过程
详解RDB持久化
RDB(Redis DataBase)持久化是 Redis 数据库一种持久化机制,用于将内存中的数据保存到磁盘上,以防止数据在重启时丢失。RDB 持久化的主要作用是将当前时刻的数据库状态保存到一个二进制文件中,这个文件通常以 .rdb 为扩展名。

下面是 RDB 持久化的详细解释:
RDB 持久化的触发方式
RDB 持久化可以通过以下两种方式触发:

-
手动触发: 可以使用
SAVE或BGSAVE命令来手动触发 RDB 持久化。(如上图所示)SAVE命令会阻塞 Redis 服务器,直到 RDB 持久化完成为止。BGSAVE命令会在后台执行,不会阻塞 Redis 服务器,允许继续处理其他请求。
-
自动触发: Redis 还可以通过配置redis.conf文件后达到一定条件时自动触发 RDB 持久化,比如在一定时间内发生了一定数量的写操作。(如下图所示)

RDB 持久化的过程

RDB 持久化的过程可以概括为以下几个步骤:(如上图所示)
-
触发持久化: 当触发条件满足时,Redis 将会执行 RDB 持久化。
-
创建数据快照: Redis 会生成一个数据快照,即当前数据库在内存中的数据的副本。
-
数据写入临时文件: 将数据快照写入一个临时文件。
-
替换旧的 RDB 文件: 当临时文件写入完成后,Redis 会将旧的 RDB 文件替换为新的文件。
-
完成持久化: 持久化完成后,Redis 将继续处理其他请求。
RDB 文件的结构
RDB 文件是一个二进制文件,包含了保存了整个数据库状态的数据。文件的结构可以分为以下几个部分:
-
文件头部: 包含了一个魔数(Magic Number)和版本号等信息,用于标识文件类型和版本。
-
全局信息: 包含了数据库的基本信息,比如 Redis 服务器的版本、生成 RDB 文件的时间等。
-
键值对数据: 包含了数据库中的所有键值对的数据。每个键值对都包含键的数据、值的数据以及过期时间等信息。
-
数据校验和: 用于校验文件完整性的校验和数据。
RDB 持久化的优缺点
优点:
- 高性能: RDB 持久化是通过快照的方式保存数据,因此在恢复数据时非常快速。
- 紧凑: RDB 文件是二进制格式,相对于文本格式更加紧凑,占用的磁盘空间相对较小。
缺点:
- 可能丢失数据: 如果在两次持久化之间发生故障,可能会导致一定时间内的数据丢失。
- 不适用于大规模数据: 对于大规模数据的数据库,生成快照和持久化会占用较多的系统资源。
相关文章:
详解Redis持久化(上篇——RDB持久化)
Redis持久化的作用和意义 Redis 持久化是一种机制,用于将内存中的数据写入磁盘,以保证数据在服务器重启时不会丢失。持久化是为了解决内存数据库(如 Redis)在服务器关闭后,数据丢失的问题。 Redis 持久化的主要作用和…...
爬虫常见风控
一.ip风控 单位时间内接口访问频率。 二.设备指纹风控 设备注册时候设备特征是否完整,信息主要包含硬件、网络、系统三部分。 硬件属性:设备品牌、型号、IMEI(国际移动设备识别码)、处理器、内存、分辨率、亮度、摄像头、电池、…...
华为ensp:边缘端口并启动BUDU保护
如上图前提是三个交换机都做了rstp,则在边缘的地方做 边缘端口并启动BUDU保护,也就是我用绿色圈出来的地方 边缘1 进入交换机的系统视图 interface e0/0/3 进入接口 stp edged-port enable quit 再退回系统视图 stp bpdu-protection 这样就可以了…...
分布式id生成数据库号段算法的golang实现
分布式id生成数据库号段算法的golang实现 介绍项目结构使用说明核心流程说明1. 定义id生成器结构体2. id生成器共有Monitor,GetOne, Close三个对外暴露的方法。3. 数据表结构 参与贡献 介绍 项目地址:gitee;github 本项目主要利用go语言(go1…...
【算法 | 模拟No.4】AcWing 756. 蛇形矩阵 AcWing 40. 顺时针打印矩阵
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…...
数据——最为直接的答案
身处于这样一个数字化快速发展、竞争强烈的时代,不管是企业还是个人,大家都需要及时获取前沿动态信息,密切关注市场的变化。但是,在不计其数的企业中,到底行业top 是哪些企业引领潮流? 只有数据能告诉你最…...
php加密解密的用法(对称加密,非对称加密)
加密和摘要的区别 ***摘要:是从已知的数据中,通过摘要计算出一个值,一个数据对应一个或多个摘要的值 *** 比如:md5 和 sha1 sha256 hash 就是得到一个特定的值 ,同一个数据得到的md5 是一样的,不会改变的 比…...
优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验
一、项目背景 中建科技产业园(中建光谷之星),位于武汉光谷中心城、中国(湖北)自贸试验区武汉片区双核心区,光谷发展主轴高新大道北侧,建筑面积108万平米,是中建三局“中建之星”和“…...
Python基础详解教程------目录大纲
Python基础详解教程------让编程简单 目录 第一章、python基本概念规范... 5 1.1方法(Method)与函数(Function) 5 1.2类(Class)与函数(Function) 6 1.3变量(Variable)与参数(Parameter)及形参与实参... 7 1.4变量(Variable)与属性(Attribute)及property. 8 1.5对象(Objec…...
什么是高防IP?
什么是高防IP? 高防IP是针对互联网服务器在遭受大流量的DDOS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。(无需转移数据&#…...
打开word文档报错,提示HRESULT 0x80004005 位置: 部分: /word/comments.xml,行: 0,列: 0
某用户遇到这样一个奇怪的问题,就是回复完word的批注后,保存文档再打开就会报错,提示很抱歉,无法打开XXX,因为内容有问题。,详细信息提示HRESULT 0x80004005 位置: 部分: /word/comments.xml,行: 0,列: 0 c…...
Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算
Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算 在用Allegro进行PCB设计的时候,Cross-section中需要填入对应的信息,一般填入每层的厚度即可,如下图 当PCB需要进行仿真分析的时候,Etch-Factor这个值是必须要填写的,如下图 目前看到的都是90这个值,这是一个理论值。 …...
20 个好用的一行 Java代码
今天分享给大家20个 令人惊叹的 Java一行代码,让你们的工作更轻松。一起来看看吧! 1. 获取浏览器 Cookie 的值 使用document.cookie 来获取 Cookie 的值。 2. 将 RGB 转换为十六进制 3. 复制到剪贴板 使用 navigator.clipboard.writeText 轻松将任何文本…...
Java编程--单例模式(饿汉模式/懒汉模式)/阻塞队列
前言 逆水行舟,不进则退!!! 目录 单例模式 饿汉模式: 懒汉模式: 什么是阻塞队列 什么是高内聚 低耦合 阻塞队列的实现 单例模式 单例模式(Singleton Pattern)是一种常见…...
【go-zero】go-zero 脚手架 simple-admin 第二章:通过goctls生成api整个项目
往期回顾 一、simple-admin 开篇:安装 了解 goctls 二、go-zero 脚手架 simple-admin 第一章:通过goctls生成rpc整个项目 | go-zero整合 ENT数据库orm框架 本章内容 往期回顾一、simple-admin 创建rpc项目实战1、创建git仓库1.1、创建任意git仓库1.2、克隆到本地2、创建API项…...
小程序用户隐私设置指引
自2021年11月1日起,个人信息保护法正式执行了。微信小程序在这方面也加强了整改。小程序对涉及个人隐私使用的需要严格要求修改,不修正的小程序将被下架风险;新上线的小程序也要完善小程序个人隐私设置,不然代码提交不会通过。 小…...
Docker - 容器数据卷
Docker - 容器数据卷 什么是容器数据卷 等同于挂载,将容器内的目录地址指向于宿主机文件系统中 直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker …...
YOLOv5独家最新改进《新颖高效AsDDet检测头》VisDrone数据集mAP涨点,即插即用|检测头新颖改进,性能高效涨点
💡本篇内容:YOLOv5独家最新改进《新颖高效AsDDet检测头》VisDrone数据集mAP涨点1.4%,即插即用|检测头新颖改进,性能高效涨点 💡🚀🚀🚀本博客 YOLO系列 + 全新新颖原创高效AsDDet检测头 改进创新点改进源代码改进 适用于 YOLOv5 按步骤操作运行改进后的代码即可…...
第十三章 网络管理实战1
第十三章 网络管理实战1 1osl模型 1.1简介 开发系统互联模型 开放式系统互联 国际标准化组织 ISO 指定定义了不同计算机互联的标准设计和描述 计算机网络通信的框架设计和描述 计算机网络通信的框架 全世界网络通信的工作分为7层 应用层表示层会话层传输层网络层数据链路…...
警惕!.360、.halo病毒来袭,这些建议能让你的数据安如泰山!
导言: 嘿,亲爱的读者们,今天91数据恢复讨论一个挑战性极高的问题——.halo、.360病毒,这可是个十足的恶棍,专门对你珍贵的数据下黑手!别怕,我这就告诉你怎么防患于未然,还有被它拐走…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
