【redis】redis RDB

news2024/11/26 17:28:44

1、概述

1.1定义

  • RDB (Redis Database) 是 Redis 的默认持久化机制,它能够在指定的时间间隔内将内存中的数据集快照写入磁盘。
  • RDB 持久化产生的文件是一个经过压缩的二进制文件,通过该文件可以还原生成 RDB 文件时的数据库状态。

1.2特点

  • 一次性全量备份:RDB 是 Redis 数据的完整备份,通常在一个单独的文件中,包含了某个时间点 Redis 的所有数据。
  • 数据紧凑:由于 RDB 文件是二进制文件,且采用了压缩技术,所以它的体积通常比 AOF 文件小得多。
  • 恢复速度快:由于 RDB 文件的读写效率很高,因此 Redis 重启时加载 RDB 文件的速度比加载 AOF 文件的速度要快很多。
  • 存储数据安全:RDB 持久化会将数据写入磁盘,因此即使 Redis 进程崩溃,也可以通过 RDB 文件进行数据恢复。

2、持久化

2.1过程

  • RDB持久化可以手动执行(使用SAVE命令)或由服务器定期执行(根据配置选项)。
  • 自动触发:通过在Redis的配置文件redis.conf中设置save参数值来开启RDB自动持久化。例如,save 900 1表示在900秒内如果至少有1个key的值变化,则生成RDB文件。
  • 手动触发
    • SAVE命令:阻塞服务器进程,直到RDB文件创建完毕。不推荐在生产环境中使用。
    • BGSAVE命令:在后台异步执行快照生成,不会阻塞服务器处理客户端请求。Redis内部几乎所有的RDB操作都采用BGSAVE命令。

2.2主要步骤

  • 触发:通过自动或手动的方式触发RDB持久化。
  • fork子进程:执行bgsave命令时,Redis父进程会fork出一个子进程。这个子进程拥有父进程内存数据的副本。
  • 生成RDB文件:子进程读取内存数据,将数据写入一个RDB临时文件中。这个过程对父进程是异步的,父进程可以继续处理其他客户端请求。
  • 写入变更数据:如果父进程在子进程生成RDB文件期间修改了数据,父进程会通过写时复制(COW)机制将这些变更数据复制到新的内存区域,并在RDB临时文件写入完成后,将这些变更数据也写入RDB临时文件中。
  • 替换旧文件:子进程完成RDB临时文件的写入后,会通知父进程。父进程会将RDB临时文件重命名为正式的RDB文件,并替换旧的RDB文件。至此,RDB持久化完成。

3、应用场景

  • 定期备份:由于 RDB 文件是 Redis 数据的完整备份,因此可以用于定期备份 Redis 数据,以防止数据丢失。
  • 数据迁移:当需要将 Redis 数据从一个实例迁移到另一个实例时,可以使用 RDB 文件作为数据迁移的媒介。
  • 快速恢复:在 Redis 服务器崩溃或数据丢失的情况下,可以通过加载 RDB 文件来快速恢复数据。

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

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

相关文章

高性价比 ESP32 网络收音机:OLED 显示+编码器控制 (源码开源)

摘要: 本文将详细介绍如何使用 ESP32 开发板制作一个功能完备的网络收音机。我们将涵盖硬件选择、软件架构、网络连接、音频流解码、用户界面设计等方面,并提供完整的代码示例和详细的解释,帮助您轻松构建自己的网络收音机。 关键词: ESP32, 网络收音机…

java基于ssm+jsp 多人命题系统

1管理员功能模块 管理员登录,管理员通过输入用户、密码等信息进行系统登录,如图1所示。 图1管理员登录界面图 管理员对个人中心进行操作填写原密码、新密码、确认密码并进行添加、删除、修改以及查看,如图2所示。 图2个人信息功能界面图 学…

大数据信用报告查询应该选什么样的平台?

随着大数据技术的不断发展,大数据信用报告查询平台也应运而生。这些平台通过数据挖掘和分析,为个人提供有关大数据信用的详细报告,帮助他们在做出决策时获得更多的信息。然而,面对众多的大数据信用报告查询平台,如何选…

Qt的入门

Qt的入门 1.Qt的配置2.介绍Qt的使用2.1 Qt 5.14.22.2 Linguist 5.14.22.3Designer 5.14.22.4 Assistant 5.14.22.5 Qt Creator 4.11.1 3.创建第一个项目3.1点击文件来新建一个新的文件或项目3.2选择项目路径和名称3.3选择构建工具3.4类信息3.5翻译文件3.6选择编译器3.7项目管理…

【算法学习】射线法判断点在多边形内外(C#)以及确定内外两点连线与边界的交点

1.前言: 在GIS开发中,经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题,例如:在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…

第十节:学习ConfigurationProperties类来配置pojo实体类参数(自学Spring boot 3.x的第二天)

大家好,我是网创有方 。这节记录下如何使用ConfigurationProperties来实现自动注入配置值。。实现将配置文件里的application.properties的参数赋值给实体类并且打印出来。 第一步:新建一个实体类WechatConfig package cn.wcyf.wcai.config;import org…

C++进阶之哈希

一、unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行…

Langchain-实战篇-搭建本地问答机器人-01

项目背景 在这个快节奏的职场世界里,我们每个人都可能在某个时刻,化身为一头辛勤的牛或一匹奔腾的马,面对入职签合同时的迷茫,或是离职时的纠纷,心中难免会涌现出各种疑问。比如: "这份合同里的条款…

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解 1. 引言2. PAI3D框架2.1 Instance Painter2.2 Adaptive Projection Refiner2.3 Fine-granular Detection Head 3. 实验结果3.1 消融实验 1. 引言 3D目标检测对于自动驾驶来说是一个非常重要的模块&a…

wsl ubuntu 安装Anaconda3步骤

如何在Ubuntu上安装Anaconda3呢?本章记录整个安装过程。 1、下载脚本 https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Linux-x86_64.sh 下载之后,将脚本上传到Ubuntu里。 2、安装脚本 bash Anaconda3-2021.11-Linux-x86_64.sh根据提示进行安装,提示输…

NIVision-LabVIEW在灰度图上画圆

问题来源 在csdn上看到的这样一个问题,好像也没个正经答案,都用chatGPT回答,挺没劲的。不说提供个vi源代码,至少也来张截图嘛。我想着问题也不难,就自己动动手吧。 代码展示1 1、首先使用imaq ArrayToImage.vi创建了一…

抖音微短剧小程序源码搭建:实现巨量广告数据高效回传

在数字化营销日益盛行的今天,抖音微短剧小程序已成为品牌与观众互动的新渠道。这些短小精悍的剧目不仅能迅速抓住用户的注意力,还能有效提升品牌的知名度和用户黏性。然而,想要充分利用这一营销工具,关键在于如何高效地追踪广告数…

effective java (1)(考虑使用!)静态工厂方法代替构造方法

只是目前阶段 对本书第一章内容的浅显认知,说实话 这一章 我看了4遍左右,每一遍感觉都不一样 他的创建模式 有时候像设计模式,但作者已经在原文中描述,它并不等价于 设计模式 我们正常 创建一个年级类 是长这样的 我们不写成标准…

day57---面试专题(框架篇)

框架篇 1. Spring refresh 流程 要求 掌握 refresh 的 12 个步骤Spring refresh 概述 refresh 是 AbstractApplicationContext 中的一个方法,负责初始化 ApplicationContext 容器,容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法,我们把它们称为 refre…

【期末速成】计算机操作系统 EP02 | 学习笔记

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️2.1 考点二:操作系统的功能及接口2.2 考点三:操作系统的发展及分类2.2 考点四:操作系统的运行环境(重要) 一、前言&#x…

LabVIEW航空用电缆检测

系统通过集成LabVIEW平台,实现了航空用电缆检测过程中的自动数据收集、处理和报告生成,显著提升了检测效率和数据准确性,降低了人工干预,提高了电缆检测的可靠性。 项目背景 在航空领域,电缆的质量检测对确保飞机及其…

【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:TypeError: Object of type JpegImageFile is not JSON serializable 一、分析问题背景 在进行Python编程时,特别是处理图像数据和JSON序列化时&…

星光云720全景VR系统源码

星光云720全景VR系统源码 系统体验地址项目介绍JDK版本后端主要依赖前端框架前端node 版本用户端框架介绍技术选型依赖全景内容简介系统图片部分功能截图系统体验地址 系统体验地址 VR全景系统体验地址 账号:18175760278 密码:12345678 项目介绍 JDK版…

如何应对pcdn网络拥塞和设备性能限制?

应对PCDN网络拥塞和设备性能限制,可以采取以下操作: 一、应对网络拥塞 1.优化路由选择:通过选择最优的路由路径,降低数据包在传输过程中的拥堵概率,从而减少网络拥塞的发生。 2.流量控制与调度: 3.流量…

安装 Kali NetHunter (完整版、精简版、非root版)、实战指南、ARM设备武器化指南、andrax、安卓渗透drozer

From:https://www.kali.org/docs/nethunter/ NetHunter 实战指南:https://www.vuln.cn/6430 乌云 存档:https://www.vuln.cn/wooyundrops 1、Kali NetHunter Kali NetHunter 简介 Net(网络),hunter&#x…