当前位置: 首页 > news >正文

实用指南:Redis底层原理-持久化【详细易懂】

Redis底层原理-持久化

好久没更文了,最近开始重拾自己技术博文,并整理沉淀下自己的技术,

因为之前感觉都是你一说,我感觉会,但是真叫我说,又说不出来

哈哈哈!尴尬的场面(别问了,本人亲身体验过)

不废话了,一起吸收一波吧!

主要支持的两种持久化机制: RDBAOF

RDB

RDB文件的生成是否会阻塞主线程?分情况

save:阻塞主线程

bgsave:创建子进程(专门写入RDB文件) 也是自动保存(配置文件中)的命令

在这里插入图片描述

但是手动确很不方便,怎么自动进行配置?—>

1.配置文件中:save命令操作

我们在Redis安装目录中的redis.windows-service.conf(里面用的就是bgsave)

在这里插入图片描述

2.自动机制: shutdown

从节点执行全量复制操作,主节点自动执行bgsave生成一个RDB文件发给从节点,

3.使用sqve "":关闭持久化,就是一个纯内存的的缓存软件

思考:bgsave问什么可以不阻塞?(面试题)

我们看下方此图

答案:

在这里插入图片描述

RDB保存的快照文件默认采用LZF压缩算法来保存,在配置文件中(默认开启)

rdbcompression yes

在这里插入图片描述

如果检验快照文件是否损坏?怎么检查

找到你安装的Redis目录,打开cmd黑窗口,输入如下命令

在这里插入图片描述

思考:快照时数据能修改吗?

当然能!!为什么?

答案:

  • 我们每次的保存,正如上面的配置文件中保存bgsave命令,都会修改快照文件数据,所以能修改
  • 但是会存在一个问题,如下图所示,会存在数据的丢失问题,这RDB弊端怎么解决呢?

在这里插入图片描述

接下来,我们就需要引入AOF

AOF(Append Only File)

开启的命令:

appendonly yes

在这里插入图片描述

思考:AOF的持久化原理是什么?

结合下图理解

AOF 持久化的整个流程图

在这里插入图片描述

思考:Redis重启时如何启动的呢?流程是什么?

  • 1.首先查看是否开启AOF,
  • 2.是的话,进行检测有没有AOF文件有就进行加载,没有就加载RDB文件
  • 3.否的话:检测有没有RDB文件,则进行加载RDB文件,没有就正常启动(啥都不加载)
  • 4.判断启动是否成功: 是就成功,否就失败
  • 总之:优先加载AOF,再看RDB

在这里插入图片描述

通过上面的阅读,我们也了解了AOF性能要求高,RDG又存在数据丢失的问题,都不完美(要做全量),怎么办呢?有没有中间方案?

答案:有的(哈哈哈!~)我们继续往下看

RDB-AOF混合持久化

开启命令:

aof-use-rdb-preamble yes

在这里插入图片描述

全流程图

我们可以看到rewrite的过程中下方的AOF文件,首先加载RDB文件

混合模式写入的时候: 在rewrite首先保存成RDB(更快),后面使用AOF防止数据丢失和性能(避免阻塞)

在这里插入图片描述

注意:AOF不是不丢失数据,只是在缓存中丢失很少,比RDB的全量复制更好

举个例子: AOF相当于签到表有个记录就行,RDB相当于开会,必须全员都来,否则不能开(全量复制)

思考: 主线程,子线程和后台线程的联系与区别?

如下图所示:

在这里插入图片描述

  • Redis主线程只有一个:主要用来处理客户端的命令请求,执行相应的操作,并返回对应的结果(多个请求就顺序执行)
  • 后台线程: 异步处理,不会阻塞主线程
  • 子进程: 是Redis的一个特例,用来Redis的持久化的操作
  • 一般而言: 主进程和子进程一般会共用一块内存区域
    • 进程: 作为分配资源的单位,
    • 线程: 是CPU调度和执行的一个实体

思考: Redis的持久化过程有没有一些风险?

答案: 肯定有

  • Redis在持久化的fork过程中,会有一些卡顿(因为此过程会产生阻塞)

思考: 为什么主从复制不使用AOF

在这里插入图片描述

完结

好了,关于redis的持久化相关知识就分享到这

码字不易,求关注,求点赞啊!~哈哈哈!一起加油,顶峰见!

在这里插入图片描述

http://www.jsqmd.com/news/370499/

相关文章:

  • 2026年抗过敏猫粮产品推荐:基于成分功效与喂养实证维度下的权威榜单 - 品牌推荐
  • 2026年洗地机产品终极评测(权威数据与市场趋势双重背书)| 家庭选购避坑全指南 - 品牌推荐
  • 2026年儿童牙膏品牌推荐:基于2026年成分安全趋势评测,涵盖幼儿与学龄儿童核心场景 - 品牌推荐
  • jvm相关概念
  • 期货套保系统指标监控面板设计与应用
  • Mysql 5.7 windows安装 zip安装
  • 期现对冲交易系统合同状态监控功能解析
  • 利用LuatOS的errDump功能实现运行时错误追踪与上报
  • 洗地机哪个品牌好?2026年洗地机产品推荐与排名,解决维护与性价比核心痛点 - 品牌推荐
  • 铝箔胶带怎么选?基材纯度、耐候性与定制化服务Top5厂家全攻略 - 深度智识库
  • OpenClaw从本地运行时到云端推理的完全接管机制与安全边界
  • 2026银川酒店民宿装修推荐哪家?专业工装 实力品牌 省心落地指南 - 宁夏壹山网络
  • 2026年度儿童牙膏品牌TOP5综合评估与选型指南 - 品牌推荐
  • 2026年2月,为你推荐评价好的资质代办公司,代办营业执照/注册公司/资质代办/代办公司/公司注册,代办公司推荐 - 品牌推荐师
  • 杭州GEO优化推荐:2026年提升搜索可见度的优选,GEO优化/GEO优化服务,GEO优化实力厂家找哪家 - 品牌推荐师
  • 2026年度儿童牙膏品牌推荐榜单:成分安全与防蛀功效双维度综合评估 - 品牌推荐
  • 2026年儿童牙膏品牌推荐:基于分龄护理趋势评价,针对龋齿与成分焦虑提供选购推荐 - 品牌推荐
  • 告别论文恐惧症!实测6款免费AI写论文工具,写作无压力,初稿轻松搞定! - 麟书学长
  • a16z 领投 AI 伴侣 Shizuku AI:让社区参与 AI 角色成长;夸克 AI 眼镜新增直播功能丨日报
  • 开封金盛机械:定制种子加工生产线 全系列设备赋能全球 - 朴素的承诺
  • 电气铁路柔性过分相:从供电臂a到供电臂b的换相之旅
  • win11 wsl2安装Ubuntu详细步骤
  • 使用 Visual Studio 2022 其他语言乱码问题
  • 4090模型切换
  • wireshark
  • 基于DirectX和C#的三维显示控件实现
  • Codeforces Round 1078 (Div. 2) A,B,C,D,E,F1个人题解 - CUC
  • Distributed Hybrid Parallelism for Large Language Models Comparative Study and System Design Guide
  • 铝箔胶带行业深度报告:五大标杆企业解析与市场趋势洞察 - 深度智识库
  • 中国OIer失去OI体力了?