详解 Redis 持久化之掌握 RDB ⽂件的格式,学习如何制作数据库镜像

rdb 文件查看工具 可以打开rdb格式的文件,rdb文件的优点,自己可以去查。QQ里的图标资源就是rdb格式的,这个工具可以提取其中的图标,good lucy。 立即下载

本文带大家了解一下 Redis 数据一种持久化方式 RDB 的实现。包括 Redis 内存快照 RDB ⽂件的创建时机以及⽣成⽅法。可以让你掌握 RDB ⽂件的格式,学习如何制作数据库镜像。

RDB 创建的入口函数

Redis 创建 RDB 文件的函数有三个,分别是 rdbSave, rdbSaveBackground, rdbSaveToSlavesSockets 这三个函数。

rdbSave

rdbSave 是 Redis 在本地磁盘创建 RDB ⽂件的入口函数。它对应了 Redis 的 save 命令,会在 save 命令的实现函数 saveCommand 中被调用,这个命令是使用主线程执行的,会阻塞其他命令的执行。rdbSave 函数最终会调用 rdbSaveRio 函数来实际创建RDB⽂件。

rdbSaveBackground

rdbSaveBackground 是 Redis 使⽤⼦进程方式在本地磁盘创建 RDB ⽂件的入口函数。它对应了 Redis 的 bgsave 命令,会在 bgsave 命令的实现函数 bgsaveCommand 中被调⽤。这个函数会调⽤ fork 创建 ⼀个⼦进程,让⼦进程调用 rdbSave 函数来创建 RDB ⽂件,而主线程本⾝可以继续处理客户端请求。

int rdbSaveBackground(char *filename, rdbSaveInfo *rsi) {
    ...
    if ((childpid = fork()) == 0) {
        // 子进程执行方法
        ...
        // 调用 rdbSave 创建 RDB 文件
        retval = rdbSave(filename,rsi);
        ...
        // 子进程退出
        exitFromChild((retval == C_OK) ? 0 : 1);
    } else {
        /* Parent */
        // 父进程也就是主线程执行方法
        ...
        return C_OK;
    }
    return C_OK; /* unreached */
}

rdbSaveToSlavesSockets

rdbSaveToSlavesSockets 函数是 Redis 采用不落盘方式传输 RDB 文件进行主从复制时,创建 RDB文件的入口函数。

与 rdbSaveBackground 函数类似,rdbSaveToSlavesSockets 也是通过创建子进程,让子进程创建 RDB 文件。与 rdbSaveBackground 不同的是,rdbSaveToSlavesSockets 是通过网络以字节流的形式直接发送 RDB 文件的二进制文件数据给从节点。

RDB 创建时机

从上面的分析中我们知道 RDB 文件创建的三个时机分别是执行 save 命令、执行 bgsave 命令和进

RDB格式文件打包解包工具 RDB打包解包工具 打包解包RDB的工具 立即下载

相关推荐

领域驱动设计整理——实体和值对象设计

实体引言在领域驱动设计里,实体的设计可以说是通用语言的核心,也是最开始在模型划分中需要考虑的。怎么样设计实体和怎么样划分限界上下文同样重要。实体的概念就是要保证通用语言的完整性。领域驱动让设计实体的关注点从数据的属性和表的关联转化到了富有行为的领域概念上。 实体是具有可变性的,这是一个和值对象比较明显的区分,也即实体是可以持续得变化,持续得修改,并且具有唯一的标识。在设计实体的时候需要跳出CRUD的

马猴烧酒└(┐卍^o^)卍ドゥルルル~楪詩月「YUZURIHA SHIZUKI」 2万+

线阵相机标定必看:如何用Halcon实现亚毫米级精度测量(以HC050标定板为例)

本文以HC050标定板为例,详细阐述了如何利用Halcon实现线阵相机的高精度标定,以达到亚毫米级测量。文章深入剖析了线阵相机标定的核心原理、面临的独特挑战,并提供了从硬件搭建、图像采集到Halcon软件实操的完整路径,重点解析了运动参数设置、精度验证及常见问题排错,为精密测量应用提供系统解决方案。

weixin_29213655的博客 314

在Kintex-7 FPGA上实现皮秒级时间测量:手把手教你搭建CARRY4进位链TDC(附源码与约束)

本文详细介绍了在Kintex-7 FPGA上利用CARRY4进位链实现皮秒级时间测量(TDC)的完整方案。从CARRY4的物理特性分析到硬件架构设计,再到校准方法与精度提升技巧,手把手教你构建测量精度达53ps的TDC系统,并附源码与约束文件,助力激光雷达、高能物理等精密计时应用开发。

weixin_42550052的博客 448

告别License烦恼:手把手教你用VS Code+Cppcheck搭建免费的MISRA-C代码检查环境

本文详细介绍了如何使用VS Code和开源工具Cppcheck搭建免费的MISRA-C代码检查环境,帮助开发者规避商业工具的高额License费用。通过四步环境搭建和实战技巧,实现高效的代码静态检查,提升嵌入式开发的安全性和可靠性。

weixin_42523326的博客 249

在windows上,在WSL 2(windows subsystem linux) 里一步步安装vLLM

本文介绍了在Windows系统上通过WSL2配置GPU加速的AI开发环境的完整流程。主要包括四个步骤: 1)安装WSL2并配置Ubuntu环境; 2)安装NVIDIA驱动和CUDA工具包; 3)搭建Python虚拟环境并安装vLLM; 4)验证环境并启动AI模型服务。

2601_96126911的博客 422

从零构建:用Arduino和MCP2515模块搭建你的第一个CAN Bus网络

本文详细介绍了如何使用Arduino和MCP2515模块从零搭建CAN Bus网络,实现温湿度数据的传输与显示。涵盖硬件连接、软件配置、发送端与接收端代码实现,以及系统调试和进阶应用,帮助初学者快速掌握CAN总线通信技术。

d6e7f8的博客 834

Python爬虫实战:采集菜谱网站数据——以“下厨房”为例

随着互联网的发展,海量优质数据为各类应用提供了坚实基础。菜谱作为用户日常生活中需求极高的内容,丰富多样的菜谱数据不仅方便用户烹饪,也为美食推荐、营养分析等研究提供了数据支持。本文将围绕国内知名菜谱网站“下厨房”(https://www.xiachufang.com)展开,结合最新Python爬虫技术,详细讲解如何高效、规范地采集菜谱数据,包括菜谱名称、食材、步骤、评分、评论等丰富信息。全篇覆盖爬虫原理、框架选型、反爬应对、数据存储和简单分析,是学习爬虫实战的绝佳案例。菜谱标题作者信息菜谱图片。

2201_76125261的博客 1900

ESP-SPARKBOT AI 智能机器人:v1.2 全流程复刻指南

本文介绍 ESP-SPARKBOT AI 智能机器人 v1.2 版本的全流程复刻,包含 PCB 、3D 打印、固件烧录、常见问题解决、参考资料等

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9261

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: MySQL基础三问:底层逻辑、正在执行、日志观察
下一篇: 细数一下Java中反射机制及反射的优缺点
Java_LingFeng
博客等级 码龄4年 505粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值