RDB 和 AOF 的实现原理以及优缺点

news2024/11/20 0:44:48
一个工作了 5 年的粉丝私信我, 关于 RDB 和 AOF 的实现原理 这个问题在面试的时候,应该怎么回答?于是我把之前整理过的一个高手回答整理成文档发给了他,后来他参考这个回复在面试的时候顺利拿到了 offer
今天我把这个文档分享给大家,可以在评论区置顶中获取。

一、问题解析

关于 RDB 和 AOF 的实现原理以及优缺点,我觉得可以分成三个部分去回答。
第一部分,先说明这两种持久化机制的特性。
RDB 和 AOF 都是 Redis 里面提供的持久化机制,RDB 是通过快照方式实现持久化、
AOF 是通过命令追加的方式实现持久化。
第二部分,说明这两种机制的工作原理。
【如图】RDB 持久化机制会根据快照触发条件,把内存里面的数据快照写入到磁盘,
以二进制的压缩文件进行存储。
RDB 快照的触发方式有很多,比如
执行 bgsave 命令触发异步快照,执行 save 命令触发同步快照,同步快照会阻塞客户端的执行指令。
根据 redis.conf 文件里面的配置,自动触发 bgsave
主从复制的时候触发
【如图】,AOF 持久化机制是近乎实时的方式来完成持久化的,就是客户端执行一个数据变更的操作,Redis Server 就会把这个命令追加到 aof 缓冲区的末尾,然后再把缓冲区的数据写入到磁盘的 AOF 文件里面,至于最终什么时候真正持久化到磁盘,是根据刷盘的策略来决定的。

 

为了避免追加的方式导致 AOF 文件过大的问题,Redis 提供了 AOF 重写机制(如图),也就是说当 AOF 文件的大小达到某个阈值的时候,就会把这个文件里面相同的指令进行压缩。

第三部分,AOF 和 RDB 的优缺点分析我认为 RDB 和 AOF 的优缺点有两个。
RDB 是每隔一段时间触发持久化,因此数据安全性低,AOF 可以做到实时持久化,数据安全性较高
RDB 文件默认采用压缩的方式持久化,AOF 存储的是执行指令,所以 RDB 在数据恢复的时候性能比 AOF 要好
你看,通过这样的回答,逻辑清晰,表达完整,会给面试官一个很好的感受。
好了,今天的分享就到这里,bye bye。

 

二、粉丝福利

我是浮生,一个工作十四年经验的Java程序员!

最近很多同学问我有没有java学习资料,我根据我从小白到架构师多年的学习经验整理出来了一份80W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我
公众号:“ 
灰灰聊架构 ”, 回复暗号:“ 321 ”即可获取

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

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

相关文章

AI大模型,掀起新一波智能浪潮!

AI大模型的出现,标志着人工智能技术迈入了一个新的阶段。这些巨大的模型不仅在规模上超越了以往任何其他人工智能系统,而且在性能上也取得了巨大的突破。由于其庞大的参数量和复杂的结构,AI大模型在各个领域展现出了强大的学习能力和推理能力…

Haproxy 负载均衡集群

一. Haproxy 1. Haproxy 介绍 HAProxy 是法国开发者威利塔罗 (Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则…

基于React低代码平台开发:直击最新应用构建

文章目录 前言一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践:基于React》编辑推荐内容简介作者简介目录前言为什么要写这本书读者对象如何阅读本书 前言 随着数字化转型的…

【免费资源】Unity真实广阔的沙漠场景等你来解锁!

Unity真实广阔的沙漠场景等你来解锁! Unity 每周免费资源上新啦!此次更新的是广阔的沙漠场景,其中包含 14 个预制体,每个预制体都包含 LOD、400-2000 顶点和 4K 纹理。现在,只需登录 Asset Store,即可免费领…

ThinkPHP6与支付宝支付集成指南:轻松实现在线收款!

随着移动支付的普及,支付宝成为了越来越多人的首选支付方式。而作为一款高性能、高效率、安全稳定的开源框架,thinkphp6也被众多开发人员所青睐。那么,如何在thinkphp6中快速简便地实现支付宝支付呢? 首先,我们需要在…

openGauss学习笔记-238 openGauss性能调优-SQL调优-SQL执行计划介绍-详解

文章目录 openGauss学习笔记-238 openGauss性能调优-SQL调优-SQL执行计划介绍-详解238.1 详解238.1.1 执行计划238.1.1.1 执行计划层级解读(纵向)238.1.1.2 执行计划中的关键字说明 238.1.2 执行信息 openGauss学习笔记-238 openGauss性能调优-SQL调优-S…

机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析

一、引言 机器学习在当今社会扮演着日益重要的角色,但黑盒模型的不可解释性限制了其应用范围。因此,可解释性机器学习成为研究热点,有助于提高模型的可信度和可接受性。本文旨在探讨随机森林和fastshap作为可视化模型解析工具的应用&#xff…

nodejs web服务器 -- 搭建开发环境

一、配置目录结构 1、使用npm生成package.json,我创建了一个nodejs_network 文件夹,cd到这个文件夹下,执行: npm init -y 其中-y的含义是yes的意思,在init的时候省去了敲回车的步骤,如此就生成了默认的pac…

Mysql学习笔记之事务详解(读未提交、读以提交、可重复读、串行化读)

在这个博主的基础上,增加两种情况的对比:https://blog.csdn.net/llllllkkkkkooooo/article/details/108068919 可重复读中幻读现象(未使用MVCC) 设置可重复读的隔离级别 set global transaction isolation level repeatable read…

Java --- springcloud初始项目创建

目录 一、cloud项目创建 1.1、项目编码规范 1.2、注解生效激活 1.3、导入父工程maven的pom依赖 二、创建子工程并导入相关pom依赖 2.1、相关配置文件 2.1.1、数据库配置文件内容 2.1.2、自动生成文件配置内容 三、创建微服务8001子工程 3.1、导入相关pom依赖 3.…

Orange3数据预处理(分组组件)

Group By是Orange3中一个非常有用的组件,它允许用户对数据集进行聚合操作,类似于SQL中的GROUP BY语句或Pandas库中的groupby方法。以下是Group By组件的一些核心功能介绍: 1. Mean (平均数): 数据值的总和除以数据项的数量,显示数…

yolov8多batch推理,nms后处理

0. 背景 在高速公路监控视频场景下,图像分辨率大都是1920 * 1080或者2560 * 1440,远处的物体(车辆和行人等)都比较小。考虑需要对图像进行拆分,然后把拆分后的数据统一送入模型中,推理的结果然后再做nms&am…

有没有能用蓝牙的游泳耳机?6招解决选购难题,瞄准好货!

在数字化时代,我们越来越依赖各种电子设备来提升生活质量。对于喜欢运动的朋友来说,耳机已经成为他们必不可少的装备之一。无论是跑步、健身还是游泳,耳机都能为我们提供美妙的音乐和清晰的语音通话,让我们的运动体验更加丰富多彩…

React报错 之 Objects are not valid as a React child

原文链接: 1、React报错之Objects are not valid as a React child 2、Objects are not valid as a React child error [Solved] 作者:Borislav Hadzhiev 以下文中涉及到的链接均来自于该作者,他写了很多相关的文章,可以多看看他的…

微信开发者工具 vim 键位绑定

问题:如标题 解决: 最上边点击设置,找到编辑器设置 点击更多编辑器设置,然后会弹出设置这个页面 搜索 vim ,并点击 一直往下边滑动,找到 setting.json 然后加入这段代码: "vim.insertM…

python练习题2

1.一下哪项不是python语言的保留字() A.False B.and C.true D.if 答案:C(应该是True) 2.x5,y3,执行x,yy,x之后,x和y的值分别是什么() …

记一次edu证书站的挖洞经历

前言 前几天在网上冲浪的时候无意间看到了一个Edu的站点,是一个很常见的类似MOOC的那种在线学习系统,对外开放,同时有注册和登录功能。对于我这种常年低危的菜鸡来说,这是最愿意看到的,因为一个Web网站有了登录功能&a…

Discuz论坛网站报错Discuz!Database Error(0)notconnect的解决办法

运营服务器大本营有段时间了,在运营期间遇到两次Discuz!Database Error(0)notconnect报错,和你们分享遇到Discuz报错的解决办法,希望可以帮助到你。 首先网站报错(0)notconnect&…

iOS——【自动引用计数】ARC规则及实现

1.3.3所有权修饰符 所有权修饰符一共有四种: __strong 修饰符__weak 修饰符__undafe_unretained 修饰符__autoreleasing 修饰符 __strong修饰符 _strong修饰符表示对对象的强引用,持有强引用的变量在超出其作用域的时候会被废弃,随着强引…

玄机科技女神大集结!妇女节来一场别开生面的“她”力量巡礼!

3.8妇女节到啦!是不是觉得整个世界都充满了粉红色的气息?各位小伙伴是不是已经准备好为身边的女性送上祝福了呢?而今天,我们也要来一场特别的“联欢”,盘点一下玄机科技动画中那些风格各异、魅力无限的女神们&#xff…