Redis从入门到精通进阶篇之持久化RDB

news2024/12/26 0:48:55

文章目录

    • RDB持久化
    • 工作原理

在这里插入图片描述

Redis 6的持久化机制主要有两种:RDB(Redis DataBase)和AOF(Append Only File)。本文将详细介绍这两种持久化方式的工作原理和配置要点。

RDB持久化

RDB持久化是将当前进程的数据生成快照保存到磁盘的过程。它可以通过手动触发或自动触发两种方式来执行。

手动触发RDB持久化可以使用save命令或bgsave命令。save命令会阻塞Redis服务器直到RDB过程完成,而bgsave命令则会创建一个子进程来执行持久化操作,主进程可以继续处理其他请求。

自动触发RDB持久化可以在配置文件中设置save指令,指定在一定时间间隔内有一定数量的修改操作时自动触发bgsave命令。
三种主要的触发机制:

  1. Save命令:Save命令是手动触发RDB持久化的机制。当执行Save命令时,Redis会阻塞主线程,创建一个子进程,将数据快照保存到磁盘上的RDB文件中。在持久化完成之前,Redis的主线程将无法处理其他请求。
    在这里插入图片描述

  2. BGSAVE命令:BGSAVE命令是异步触发RDB持久化的机制。当执行BGSAVE命令时,Redis会创建一个子进程,在子进程中进行数据快照的生成和保存。与Save命令不同的是,BGSAVE命令不会完全阻塞主线程,可以继续处理其他请求。
    在这里插入图片描述4. 自动触发:Redis 6.0引入了自动触发RDB持久化的机制。可以通过配置文件中的save选项来设置自动触发的条件。例如,设置save 900 1表示在900秒(15分钟)内,如果至少有1个键发生变化,则自动触发RDB持久化操作。这样可以根据实际需求来灵活地控制RDB持久化的频率。

这些触发机制可以根据需求和场景选择合适的方式来进行RDB持久化,以保证数据的持久性和恢复能力。再次对之前的回答失误表示歉意,希望这次回答能够满足你的需求。如果还有其他问题,请随时提问。
RDB持久化的优点包括快速恢复数据、压缩存储和加载速度快。缺点是实时性较差,无法做到秒级持久化,并且执行bgsave命令会进行fork子进程,频繁执行开销较大。

RDB持久化的配置项包括:

  • dbfilename:RDB文件在磁盘上的名称。
  • dir:RDB文件的存储路径。
  • stop-writes-on-bgsave-error:如果持久化过程出错,主进程是否停止写入操作。
  • rdbcompression:是否对RDB文件进行压缩。
  • rdbchecksum:在RDB文件末尾添加冗余校验编码。

工作原理

为了方便大家理解我用draw.io画了一个简单的示意图
在这里插入图片描述

RDB持久化方式一共可以分为5步,第五步其实就是持久化恢复,也可以不算。

1. 触发条件: 可以通过配置文件中的save参数来设置RDB持久化的触发条件。当满足设定的触发条件时,Redis会执行RDB持久化操作。

2. 快照生成:当触发条件满足时,Redis会调用fork函数创建一个子进程。父进程继续处理客户端的请求,而子进程负责将数据写入RDB文件。

3. 写入过程:子进程会遍历Redis服务器中的所有数据库,将每个数据库的键值对写入到RDB文件中。写入过程中,子进程会将数据转换为二进制格式,并按照一定的规则进行压缩。

4. 写入完成:当子进程完成RDB文件的写入后,它会用新生成的RDB文件覆盖原来的RDB文件。这个过程是原子的,可以保证RDB文件的完整性。

5. 恢复:当Redis服务器重新启动时,它会检查是否存在RDB文件。如果存在,Redis会加载RDB文件,并将其中的数据恢复到内存中,从而完成数据的持久化恢复。

比较坑的是 RDB持久化是一个阻塞操作,即在进行RDB持久化期间,Redis服务器将暂停响应客户端的请求。这是因为RDB持久化是通过fork子进程来完成的,而fork操作会复制整个父进程的内存空间,可能会耗费大量的CPU和内存资源。

此外,RDB持久化还有一些配置选项可以进行调整,例如可以设置RDB文件的路径和名称、是否压缩RDB文件、触发条件的设置等。这些选项可以通过Redis的配置文件redis.conf来进行配置。

总的来说,RDB持久化是一种将Redis服务器的数据生成快照并保存到磁盘的机制,它通过fork子进程来实现数据的写入和恢复。RDB持久化适用于对数据完整性要求比较高,且数据集不是特别大的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/662110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目经理,35岁以后就很难再有竞争力了吗?

早上好,我是老原。 知乎热榜上有一个问题吸引了我的注意: 说句公道话,35岁确实是个坎,这个坎在吃青春饭的行业来说,格外明显。 体力和精力都大不如年轻人,从性价比的角度来说,公司还是不会用…

2.2ORBSLAM3之几种特征点提取方法

0.简介 本节对ORB特征、SIFT特征、SURF特征、Harris角点、Shi-Tomas角点的提取与描述子计算原理进行总结,其中Harris角点、Shi-Tomas角点是关键点,没有对应的描述子,一般用于光流跟踪(Vins系列算法)。 综合所有的特征检测算法来看&#xff…

win设置静态IP

win设置静态IP地址 前言 局域网,IP地址的管理方式主要有静态分配方式和动态分配方式。 静态分配IP地址是指给每一台计算机都分配一个固定的IP地址,优点是便于管理,特别是在根据IP地址限制网络流量的局域网中,以固定的IP地址或IP地…

Django高级扩展之tinymce富文本实现

目录 安装 在站点中使用 注册富文本应用 添加配置文件 创建模型类 生成迁移文件 执行表迁移 配置站点 富文本不显示解决 修改主题 修改语言设置 自定义视图使用 设置路由 视图 创建模板 总结 安装 pip install django-tinymce 安装过程如下: 在站点…

宾军志:数据管理能力成熟度模型建设历程

4月27日在2023数据治理新实践峰会上,中国电子信息行业联合会数据资产管理专委会秘书长宾军志先生为大家分享了《数据管理能力成熟度模型建设历程》主题演讲。 以下为宾军志先生的演讲实录,为了方便阅读,小编做了一些字句修改和文本优化。大家…

JDK安装2023最完整教程与配置(零基础)

一、JDK简介 学习Java,需要下载并安装JDK,即Java Development Kit、Java开发工具包,为了能够打开java程序,就需要按照操作系统的要求进行环境变量的配置。 二、JDK下载 要想运行java开发的程序,必须先下载jdk&#…

io.netty学习 (一)Netty入门

目录 前言 Java原生API之痛 Netty的优势 非阻塞 I/O 丰富的协议 异步和事件驱动 精心设计的API 丰富的缓冲实现 高效的网络传输 Netty 核心概念 核心组件 传输服务 协议支持 Netty简单应用 总结 前言 关于Netty的学习,最近看了不少有关视频和书籍&am…

【git】VSCode 上的文件夹如何上传到 github 上?

一、重要意义 VSCode 上的文件夹上传到github有什么意义? 版本控制:通过将文件夹上传到GitHub,您可以使用Git进行版本控制。这意味着您可以记录每个文件的修改历史,并轻松地切换到以前的版本。如果您犯了错误或需要回滚更改&…

数据结构与算法·第10章【内部排序】

概念 排序问题可以分为内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序;反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。…

成为一名成功的项目经理,你需要了解这些

作为一名有抱负的项目经理,你需要了解自己的职责和任务。你的职责不仅仅是确保项目的成功,更要负责带领团队制定可靠的执行计划,并确保所有工作按计划有序进行。因此,你必须具备身兼多职的能力,以确保项目能够顺利完成…

机器视觉初步5-2:图像增强专题

图像增强是一种提高图像质量和信息量的技术,常用于图像处理、计算机视觉和机器学习中。常见的图像增强方法包括直方图均衡化、高斯滤波、锐化、对比度拉伸、图像平滑、图像锐化、图像滤波、图像金字塔等。 以下是一些常见的图像增强方法的示例代码,使用H…

数据结构——顺序表(文字+代码+带图详细讲解)

在 C 语言中,顺序表可以使用数组来实现。顺序表是一种线性表,其中的元素在物理上连续存储,可以通过下标访问任意元素。 顺序表的基本操作包括插入、删除、查找、遍历和初始化等。 这段代码定义了一个顺序表的结构体,其中包括三个…

《C++多态》

文章目录 思维导图一、多态的概念二、多态的定义及其实现1.多态的构成条件2.虚函数3.虚函数的重写不构成多态的情况展示4.虚函数重写的两个例外4.1 协变4.2析构函数的重写 5.C11 override和final5.1. final5.2.override 三、抽象类1.概念2、对比纯虚函数与override3.接口继承和…

suse linux安装介质下载

在suse官网注册一个账号,就可以免费在上面下载软件的安装介质。 SUSE HAE介质下载和安装说明:

工作十年还不知道数字化转型工具?别等老板问你时才去查资料!

在职场中,到底有什么比较好上手又能轻易提升数字化的工具? 应粉丝邀请,我来给出一个回答。 对于企业来说,你可以选择大屏。对于个人来说,你可以选择仪表板。 工作汇报已经越来越卷,对于个人来说&#xff0c…

Windows远程桌面(mstsc)不能复制粘贴的解决办法

最近突然发现Windows远程桌面(mstsc)不能在远程端和本地端之间自由的复制和粘贴了,这还是非常影响使用体验的;因此记录一下解决方法,以便后续再遇到此类问题时查看如何解决; 文章目录 一、背景二、解决办法2.1 方法1 重启rdpclip.…

ChatGPT或致全球3亿人失业,人工智能时代下教育会发生什么样的变革?

不久前,谷歌教育发布了一份关于未来教育的研究报告。该报告由谷歌公司和 Canvas8合作,对来自世界24个国家的94位教育专家进行了历时长达2年的调研,探讨了未来教育形态、教育在未来的作用、教育公平、全球人才需求、教学方式、学习生态、工作技…

Attentive Moment Retrieval in Videos论文笔记

Attentive Moment Retrieval in Videos论文笔记 0.论文地址1.摘要2.引言3.模型结构3.1Memory Attention Network3.2Cross-Modal Fusion Network 4.训练4.1对齐损失4.2定位回归损失4.3合并 5.实验5.1数据集5.2效果5.3ACRN的研究 6未来工作 0.论文地址 2018 Attentive Moment Re…

验证码客户端回显测试-业务安全测试实操(15)

验证码客户端回显测试,验证码绕过测试,验证码自动识别测试 往期文章: 验证码暴力破解测试-业务安全测试实操(13)_luozhonghua2000的博客-CSDN博客 验证码客户端回显测试 测试原理和方法 当验证码在客户端生成而非服务器端生成时,就会造成此类问题。当客户端需要和服务器进行…

【正点原子STM32连载】第三十五章 IIC实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第三…