RDB是什么?·

目录

一、RDB是什么?

二、 RDB触发机制

2.1 手动触发

2.2 自动触发

2.3 RDB执行流程

三、RDB的文件处理

四、RDB的优缺点


一、RDB是什么?

RDB是Redis DataBase,是Redis实现数据持久化的一种方式。因为Redis的数据是存储在内存中的,所以就会有数据丢失的风险,那么为了解决这样的问题,Redis采取将数据写入硬盘中进行持久化的保存。

二、 RDB触发机制

RDB进行持久化是将当前进程的数据生成快照保存到硬盘中的过程,触发RDB持久化的过程也分为手动触发和自动触发

2.1 手动触发

这里手动使用两个命令就可以触发RDB的持久化

  • save命令

        阻塞当前的Redis,只到RDB过程完成为止,但是这个命令对于会将对内存造成很大的开销,基本不采用

  • bgsave命令(background save后台保存)

        Redis执行fork操作创建出子线程,RDB的过程全部由子线程负责,完成后自动结束。阻塞只发生在fork阶段,时间很短(Redis内部的RDB操作都是采取类似bgsave的方式)

2.2 自动触发

除了手动触发的机制,Redis还提供了自动触发RDB的机制,同时这个机制也是实战中运用较多的(毕竟不能总是手动输入命令),自动触发也提供了3种方式

  •  使用save配置。如“save m n”表示在m秒修改了n次,自动RDB持久化,查看Redis的配置文件,我们可以发现默认的有900秒后修改了1次自动执行....这个并不是固定的,是可以手动修改的

        

  • 从节点进⾏全量复制操作时,主节点⾃动进⾏ RDB 持久化,随后将 RDB⽂件内容发送给从结点。
  • 使用shutdown命令关闭Redis时,自动RDB持久化

2.3 RDB执行流程

RDB手动执行和自动执行流程是一样的,这里以手动bgsave命令来演示

  1. 当执行basave命令的时候,首先会判断是否存在该命令相同的进程,如果有与该命令相同的进程就直接返回
  2. 没有正在执行的类似进程,父进程就会阻塞等待(很快单位以微秒记)执行fork,创建出子进程
  3. 当子进程创建完成之后,bgsave命令返回“Background saving started”信息通知父进程不再阻塞等待,使得父进程可以继续响应其他命令
  4. 子进程创建RDB文件,根据父进程内存中生成的快照文件,将原有文件进行原子替换,进而生成持久化的数据文件
  5. 子进程发送信号通知父进程已经完成,父进程更新统计信息

三、RDB的文件处理

打开redis的配置文件,发现rdb的默认文件是dump.rdb(这里可以修改),文件的存储路径是我已经修改过了的,是rdb文件的默认存储路径

Redis默认采⽤ LZF 算法对⽣成的 RDB ⽂件做压缩处理,压缩后的⽂件远远⼩于内存⼤⼩,默认开启,可以 将rdbcompression {yes|no} 动态修改(这里建议修改成yes,可以大幅度降低文件内存)

如果Redis在启动的过程中加载到损坏的RDB文件会拒绝启动。这里可以使用Redis提供的redis-check-dump工具检测RDB文件并获取相应的错误报告

四、RDB的优缺点

  • RDB是一个紧凑压缩的二进制文件,代表 Redis 在某个时间点上的数据快照。⾮常适⽤于备份,全量复制等场景。⽐如每 6 ⼩时执⾏ bgsave 备份,并把 RDB ⽂件复制到远程机器或者⽂件系统中(如hdfs)⽤于灾备
  • Redis加载RDB文件的速度远远快于AOF的方式
  • RDB⽅式数据没办法做到 实时持久化 / 秒级持久化。因为 bgsave 每次运⾏都要执⾏fork创建⼦进程,属于重量级操作,频繁执⾏成本过⾼(由于不是实时备份,这里就会有内存数据丢失的风险。aof能够有效的解决这个问题)
  • RDB⽂件使⽤特定⼆进制格式保存,Redis版本演进过程中有多个 RDB 版本,兼容性可能有⻛险

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

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

相关文章

Misc | bucket 第二届“奇安信”杯网络安全技能竞赛

题目描述: 解密Base全家桶。 密文: 下载附件,解压得到一个txt文本,打开如下。 3441344134363435344435323442344534423441343635353334353333323442343935413442353434393535354135333441344534353536353535333332353534413436…

Karmada更高效地实现故障转移

随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…

超详细的Jmeter随机参数各种搭配

前言 参数配置应该有三种场景,具体其他的我还没想到,那到底是哪三种呢?如果你也对这个问题感兴趣的话,那就让我们一起往下看吧! 一、两个固定值之间随机生成一个值,应用场景没有限制 1、最简单的两个值之…

【Pytorch笔记】7.torch.nn (Convolution Layers)

我们常用torch.nn来封装网络,torch.nn为我们封装好了很多神经网络中不同的层,如卷积层、池化层、归一化层等。我们会把这些层像是串成一个牛肉串一样串起来,形成网络。 先从最简单的,都有哪些层开始学起。 Convolution Layers -…

使用 Stable Diffusion Img2Img 生成、放大、模糊和增强

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D数字孪生场景编辑器 Stable Diffusion 2022.1 Img5Img 于 2 年发布,是一款革命性的深度学习模型,正在重新定义和推动照片级真实…

小米手机获取电池健康度

目录 方法一:使用Bug反馈功能 1. 打开拨号界面,输入*#*#284#*#* 2. 导出结果,等待即可 3. 找到这个压缩文件 4. 解压缩【我这里直接拷贝到电脑中操作,手机同理】 4.1 解压: 4.2 将得到的新的压缩文档解压 5. 打…

安防监控EasyCVR视频汇聚平台使用海康SDK播放出现花屏是什么原因?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…

Vue dev-tools的安装

安装 Vue 开发者工具,装插件调试Vue应用 1.通过谷歌应用商店来进行安装(国外网站) 2.极简插件: 搜索 Vue -> 下载解压 -> 浏览器扩展模式打开,开发者模式 -> 将解压的CRX文件拖拽安装 -> 插件详情 &…

vscode Prettier配置

常用配置项: .prettierrc.json 是 Prettier 格式化工具的配置文件 {"printWidth": 200, // 指定行的最大长度"tabWidth": 2, // 指定缩进的空格数"useTabs": false, // 是否使用制表符进行缩进,默认为 false"singl…

华为Matebook X Pro 2022款 i7 集显(MRG-W76)原装出厂Windows11预装系统21H2

下载链接:https://pan.baidu.com/s/12ru9lUeQ7mWd5u1KLCM0Pg?pwdc7pi 提取码:c7pi 原厂系统自带指纹、面部识别、声卡、网卡、显卡等所有驱动、出厂主题壁纸、Office办公软件、华为电脑管家等预装程序,如图 由于时间关系,绝大部分资料没…

照亮夜晚的台灯:户外空间的闪亮之选

户外台灯是家庭和社交空间的重要元素,它们不仅提供照明,还可以为您的户外区域增添美感,以及创造一个温馨的社交氛围。以下是一些关于户外台灯的信息,以帮助您更好地了解它们的多功能性和用途。 1、照明的重要性:户外台…

工作中积累的对K8s的就绪和存活探针的一些认识

首先,我的项目是基于 Spring Boot 2.3.5 的,并依赖 spring-boot-starter-actuator 提供的 endpoints 来实现就绪和存活探针,POM 文件如下图: 下面,再让我们来看下与该项目对应的Deployment的YAML文件,如下…

Mac代码文本编辑器Sublime Text 4

Sublime Text 4 for Mac拥有快速响应的功能,可以快速加载文件和执行命令,并提供多种语言支持,包括C 、Java、Python、HTML、CSS等。此外,该编辑器还支持LaTeX、Markdown、JSON、XML等技术领域。 Sublime Text 4 for Mac的插件丰富…

如何分析伦敦金的价格走势预测?

伦敦金作为国际黄金市场的重要指标,其价格走势一直备受投资者关注。但是,黄金市场的价格变化受到多种因素的影响,因此要准确预测伦敦金的价格走势并非易事。在本文中,将介绍一些常用的方法和工具,帮助您分析伦敦金的价…

金融帝国实验室(Capitalism Lab)V10版本即将推出全新公司徽标(2023-11-13)

>〔在即将推出的V10版本中,我们将告别旧的公司徽标,采用全新光鲜亮丽、富有现代气息的设计,与金融帝国实验室(Capitalism Lab)的沉浸式体验完美互补!〕 ————————————— >〔《公司详细信…

ubuntu20源码编译搭建SRS流媒体服务器

第一、下载源码 下载源码,推荐用Ubuntu20: git clone -b develop https://gitee.com/ossrs/srs.git第二、编译 2.1、切换到srs/trunk目录: cd srs/trunk2.2、执行configure脚本 ./configure2.3、执行make命令 make2.4、修改conf/rtmp.c…

Axure9 基本操作(二)

1. 文本框、文本域 文本框:快速实现提示文字与不同类型文字显示的效果。 2. 下拉列表、列表框 下拉列表:快速实现下拉框及默认显示项的效果。 3. 复选框、单选按钮 4.

Linux 本地zabbix结合内网穿透工具实现安全远程访问浏览器

前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域…

关于400G光模块的常见问题解答

最近在后台收到了很多用户咨询关于400G光模块的信息,那400G光模块作为当下主流的光模块类型,有哪些问题是备受关注的呢?下面来看看小易的详细解答! 1、什么是400G QSFP-DD光模块? 答:400G光模块是指传输速…

linux下安装python3.8(有坑)

1安装包下载 ###直接官网下载linux版本,找到对应的包 https://www.python.org/downloads/source/2安装包解压 tar -zxvf Python-3.8.0.tgz 3编译安装 1)设置安装目录,比如在此创建在 /usr/local/python3 : mkdir -p /usr/loca…