Redis能保证数据不丢失吗之RDB

有了AOF为什么还需要RDB?

上一篇我们介绍了Redis AOF持久化策略。Redis能保证数据不丢失吗之AOF

AOF虽然能实现持久化,但由于AOF恢复数据的时候是一条一条命令重新执行的,但数据量大的时候,Redis数据恢复的时间就会很久,这会导致Redis在重启的时候,有一大段时间的不可用,这很明显是不能接受的。

为此Redis引入了RDB快照。

RDB是什么

RDB是一种内存快照,Redis将某一时刻中的内存中所有的数据保存在一个RDB文件中。由于RDB保存的是数据,而不是命令,所以Redis重启恢复数据时,只需要将RDB文件加载到内存中就可以恢复数据。

快照指某一时刻被定格的数据,就像我们拍照一样,咔嚓一声,那一时刻的画面就被记录下俩了。

但做生成RDB文件的过程中,Redis还是会继续处理写请求的,那怎么办保证数据不变呢?

其实RDB的生成也是利用fork 写时复制的特点实现的,fork一个子进程,子进程刚开始与父线程共享一个内存空间,当Redis处理写请求时,此时会复制一个新的内存空间,在新的内存空间进行修改。而RBD所使用的数据还是之前的数据,不会受到影响。

当然,这里也有一个注意的点,因为使用到了fork,fork的瞬间是会阻塞主线程的,阻塞的时间跟当前内存数据大小有关,这一点在AOF的那篇文章中有讲过,这里就

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

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

相关文章

AI浪潮下的艺术突围战:对话《名人百科数据库》执行主编刘鑫炜

当AI生成的画作在国际赛事中摘冠,当算法推荐主导艺术传播路径,技术革命正以前所未有的速度重塑艺术生态。我们独家专访深耕艺术推广领域的刘鑫炜主编,探讨当代艺术家在智能时代的生存法则。 图为《名人百科数据库》执行主编刘鑫炜 技术重构创…

Python 实现失败重试功能的几种方法

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 方法 1:手动 `while` 循环 + 异常捕获方法 2:使用 `tenacity` 库(推荐)方法 3:使用 `retrying` 库(旧版,已停止维护)方法 4:`requests` 自带重试(适用于 HTTP 请求)方法 5:自定义装饰器(灵活控制)方法…

2025年渗透测试面试题总结-渗透测试红队面试七(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 渗透测试红队面试七 一百八十一、Shiro漏洞类型,721原理,721利用要注意什么&am…

Unity动画系统使用整理 --- Playable

​​Playable API​​ 是一个强大的工具,用于更灵活地控制动画、音频、脚本等时间轴内容的播放和混合。它提供了比传统 Animator 更底层、更可控的方式管理时间轴行为,尤其适合复杂动画逻辑或动态内容组合的场景。 优点: 1.Playables API 支…

基于STM32、HAL库的BMP390L气压传感器 驱动程序设计

一、简介: BMP390L 是 Bosch Sensortec 生产的一款高精度气压传感器,专为需要精确测量气压和海拔高度的应用场景设计。BMP390L 具有更低的功耗、更高的精度和更快的响应速度。 二、硬件接口: BMP390L 引脚STM32L4XX 引脚说明VDD3.3V电源GNDGND地SCLPB6 (I2C1 SCL)I2C 时钟线…

Arduino快速入门

Arduino快速入门指南 一、硬件准备 选择开发板: 推荐使用 Arduino UNO(兼容性强,适合初学者),其他常见型号包括NANO(体积小)、Mega(接口更多)。准备基础元件&#xff1a…

破解 Qt QProcess 在 Release 模式下的“卡死”之谜

在使用 Qt 的 QProcess 以调用外部 ffmpeg/ffprobe 进行音视频处理时,常见的工作流程是: gatherParams:通过 ffprobe 同步获取媒体文件的参数(分辨率、采样率、声道数、码率等)。 reencode:逐个文件调用 f…

MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例

概述 以下是 MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例: 一、UPDATE 结合 SELECT(跨表更新) 场景:根据 orders 表中的订单总金额,更新 users 表中用户的 total_spent 字段。 -- 创建测试表 CREATE T…

【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)

【MCP】魔搭社区MCP服务(高德地图、everything文件搜索) 1、上手使用2、环境配置(1)cherry-studio配置(2)添加魔搭大模型服务(如果已经设置了其他大模型服务,可跳过)&…

MapReduce 的工作原理

MapReduce 是一种分布式计算框架,用于处理和生成大规模数据集。它将任务分为两个主要阶段:Map 阶段和 Reduce 阶段。开发人员可以使用存储在 HDFS 中的数据,编写 Hadoop 的 MapReduce 任务,从而实现并行处理1。 MapReduce 的工作…

MCU开启浮点计算FPU

FPU 测试 1. FPU 简介2. 协处理器控制寄存器(CPACR)3. 开启FPU4. 验证FPU(Julia 分形实验) 1. FPU 简介 FPU 即浮点运算单元(Float Point Unit)。浮点运算,对于定点 CPU(没有 FPU 的…

进程相关面试题20道

一、基础概念与原理 1.进程的定义及其与程序的本质区别是什么? 答案:进程是操作系统分配资源的基本单位,是程序在数据集合上的一次动态执行过程。核心区别:​ 动态性:程序是静态文件,进程是动态执行实例…

React Hooks 精要:从入门到精通的进阶之路

Hooks 是 React 16.8 引入的革命性特性,它让函数组件拥有了类组件的能力。以下是 React Hooks 的详细使用指南。 一、基础 Hooks 1. useState - 状态管理 import { useState } from react;function Counter() {const [count, setCount] = useState(0); // 初始值为0return …

springboot3+vue3融合项目实战-大事件文章管理系统-更新用户头像

大致分为三步 首先在usercontroller里面加入方法 PatchMapping ("/updateAvatar")public Result upadateAvatar(RequestParam URL String avatarUrl){userService.updateAvater(avatarUrl);return Result.success();}url注解能验证传入的url是不是合法的&#xff0c…

Mosaic数据增强技术

Mosaic 数据增强技术是一种在计算机视觉领域广泛应用的数据增强方法。下面是Mosaic 数据增强技术原理的详细介绍 一、原理 Mosaic 数据增强是将多张图像(通常是 4 张)按照一定的规则拼接在一起,形成一张新的图像。在拼接过程中,会…

Git安装教程及常用命令

1. 安装 Git Bash 下载 Git 安装包 首先,访问 Git 官方网站 下载适用于 Windows 的 Git 安装包。 安装步骤 启动安装程序:双击下载的 .exe 文件,启动安装程序。选择安装选项: 安装路径:可以选择默认路径&#xff0…

学习日志04 java

PTA上的练习复盘 java01 编程题作业感悟: 可以用ai指导自己怎么调试,但是不要把调代码这过程里面的精华交给ai,就是自己去修正错误不能让ai代劳!~~~ 1 scanner.close() Scanner *** new Scanner(System.in); ***.close(); …

AI 在模仿历史语言方面面临挑战:大型语言模型在生成历史风格文本时的困境与研究进展

概述 在当今数字化时代,人工智能(AI)技术在诸多领域展现出了强大的能力,但在处理历史语言这一特定任务时,却遭遇了不小的挑战。美国和加拿大的研究人员通过合作发现,像 ChatGPT 这样的大型语言模型&#x…

基于 Spring Boot 瑞吉外卖系统开发(十二)

基于 Spring Boot 瑞吉外卖系统开发(十二) 菜品删除 单击“批量删除”和“删除”时,会携带需要删除的菜品的id以delete请求方式向“/dish”发送请求。 URLhttp://127.0.0.1:8080/dish调用方法DELETE参数ids DishController添加删除方法 …

Day22打卡-复习

复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 泰坦尼克号人员生还预测https://www.kaggle.com/competitions/titanic/overview K…