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

三线建设学兵连网站西安地区联系人阿里云网站空间主机

三线建设学兵连网站西安地区联系人,阿里云网站空间主机,代刷网自助建站系统,网站建设好了却收不到目录 一 认识持久化 (1)先看总结图 (2)什么是持久化? (3)redis是怎么进行持久化的呢 (4)简单分析一下RDB持久化和AOF持久化的不同 二 RDB持久化 (1)RDB的触发机制 (2)RDB的bgsave执行流程 (3)RDB文件的处理 (4)RDB的优缺点 (5)RDB效果演示板书 一 认识持久化 (1)先…

目录

一 认识持久化

(1)先看总结图

(2)什么是持久化?

(3)redis是怎么进行持久化的呢

(4)简单分析一下RDB持久化和AOF持久化的不同

二  RDB持久化

(1)RDB的触发机制

(2)RDB的bgsave执行流程

(3)RDB文件的处理

(4)RDB的优缺点

(5)RDB效果演示板书


一 认识持久化

(1)先看总结图

(2)什么是持久化?

持久化是指将数据保存在持久存储介质(如硬盘、数据库)中,以确保数据在系统重启或关闭后仍然保持不变。持久化的概念通常应用在计算机领域,确保数据的长期存储和可靠性。在软件开发中,持久化可以是将数据写入文件、数据库或其他可靠的存储介质,而不是仅存在于内存中,以保证数据的持久性和可恢复性。

 总结:我们都知道内存有个特性就是掉电易失,而我们的redis就是内存级数据库,如果掉电状态那redis在内存中的数据是不是就丢失了,所以我们要把redis中内存数据保存在硬盘上去形成持久化存储,说大白话,就是数据保存在内存上不叫持久化,保存在硬盘上才叫持久化.

说到持久化就联想到我们MySQL数据库的事务中的四个特性了

  1. 原子性
  2. 一致性
  3. 持久性=>和持久化说的是一个意思
  4. 隔离性

(3)redis是怎么进行持久化的呢

redis为了保证速度快,数据肯定要在内存中,但是为了持久,数据还是要想办法存储在硬盘上~

所以redis决定在内存存数据,在硬盘上也存数据(这样的两份数据理论上来说是完全相同的,实际上存在小概率有差异,取决于咱们怎么实现持久化)

Redis ⽀持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成数据丢失问题, 当下次重启时利⽤之前持久化的⽂件即可实现数据恢复。

  1. 介绍RDB、AOF的配置和运⾏流程,以及控制持久化的命令,如bgsave和bgrewriteaof。
  2. 对常⻅持久化问题进⾏分析定位和优化

总结:

在读取数据的时候直接从内存中读取

在插入新数据或修改的时候,需要把数据同时写到内存和硬盘(说是两边都写,但是实际怎么写硬盘还是有不同的策略可以保证整体的效率还是足够高)

硬盘上的数据是在redis重启的时候,用来恢复内存中的数据

(4)简单分析一下RDB持久化和AOF持久化的不同

总结:

RDB:定期持久化,比如每个月把我电脑上的学习资料,整体进行备份到备份盘里(叫B) ,然后删除旧备份(叫A),再把新备份名字改为旧备份的名字(A->B),这实际就是RDB过程中的一部分

AOF:实时持久化,只要我下载了一个新的学习资料,就立即把这个学习资料在备份盘里备份一份

二  RDB持久化

(1)RDB的触发机制

理论:RDB持久化是把当前redis进程数据⽣成快照保存到硬盘的过程,触发RDB持久化过程分为⼿动触发和 ⾃动触发。

⼿动触发分别对应save和bgsave命令:

  1. save命令:阻塞当前Redis服务器,直到RDB过程完成为⽌,对于内存⽐较⼤的实例造成⻓时间 阻塞,基本不采⽤。
  2. bgsave命令:Redis进程执⾏fork操作创建⼦进程,RDB持久化过程由⼦进程负责,完成后⾃动 结束。阻塞只发⽣在fork阶段,⼀般时间很短。
  3. Redis 内部的所有涉及RDB的操作都采⽤类似bgsave的⽅式。

除了⼿动触发之外,Redis运⾏⾃动触发RDB持久化机制,这个触发机制才是在实战中有价值的。

  1. 使⽤save配置。如"save m n"表⽰m秒内数据集发⽣了n次修改,⾃动RDB持久化。
  2. 从节点进⾏全量复制操作时,主节点⾃动进⾏RDB持久化,随后将RDB⽂件内容发送给从结点。
  3. 执⾏shutdown命令关闭Redis时,执⾏RDB持久化。

对于手动触发和自动触发的解读:

(2)RDB的bgsave执行流程

流程说明:bgsave 是主流的RDB持久化⽅式,下⾯根据图了解它的运作流程。

  1. 执⾏bgsave命令,Redis⽗进程判断当前进是否存在其他正在执⾏的⼦进程,如RDB/AOF⼦进 程,如果存在bgsave命令直接返回。
  2. ⽗进程执⾏fork创建⼦进程,fork过程中⽗进程会阻塞,通过infostats命令查看 latest_fork_usec 选项,可以获取最近⼀次fork操作的耗时,单位为微秒。
  3. ⽗进程fork完成后,bgsave命令返回"Backgroundsavingstarted"信息并不再阻塞⽗进程,可 以继续响应其他命令。
  4. ⼦进程创建RDB⽂件,根据⽗进程内存⽣成临时快照⽂件,完成后对原有⽂件进⾏原⼦替换。执⾏lastsave 命令可以获取最后⼀次⽣成RDB的时间,对应info统计的rdb_last_save_time选 项。
  5. 进程发送信号给⽗进程表⽰完成,⽗进程更新统计信息。

ps:fork()是Linux提供的系统调用,通俗来讲就是把父进程的PCB,地址空间,页表,文件描述符等复制一份给子进程,这样父进程中的内存数据子进程就得到了完全相同的一份,就可以进行持久化操作了

(3)RDB文件的处理

保存:RDB⽂件保存再dir配置指定的⽬录(默认/var/lib/redis/)下,⽂件名通过dbfilename 配置(默认dump.rdb)指定。可以通过执⾏configsetdir{newDir}和configsetdbfilename {newFilename} 运⾏期间动态执⾏,当下次运⾏时RDB⽂件会保存到新⽬录。

压缩:Redis默认采⽤LZF算法对⽣成的RDB⽂件做压缩处理,压缩后的⽂件远远⼩于内存⼤ ⼩,默认开启,可以通过参数configsetrdbcompression{yes|no}动态修改。

校验:如果Redis启动时加载到损坏的RDB⽂件会拒绝启动。这时可以使⽤Redis提供的redis check-dump⼯具检测RDB⽂件并获取对应的错误报告。

 板书:

(4)RDB的优缺点

  1. RDB是⼀个紧凑压缩的⼆进制⽂件,代表Redis在某个时间点上的数据快照。⾮常适⽤于备份,全量复制等场景。⽐如每6⼩时执⾏bgsave备份,并把RDB⽂件复制到远程机器或者⽂件系统中 (如hdfs)⽤于灾备。
  2. Redis加载RDB恢复数据远远快于AOF的⽅式(RDB以二进制进行存储,AOF以文本进行存储)。
  3. RDB⽅式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运⾏都要执⾏fork创建⼦进程,属于重量级操作,频繁执⾏成本过⾼。
  4. RDB⽂件使⽤特定⼆进制格式保存,Redis版本演进过程中有多个RDB版本,兼容性可能有⻛ 险。

(5)RDB效果演示板书

http://www.dtcms.com/a/464187.html

相关文章:

  • 做网站找客源厦门网站制作推广
  • 做普通网站公司吗学设计需要什么条件
  • 郑州网站建设郑州网络推广重庆公司建网站流程
  • 网站创意模板找个免费网站这么难吗
  • 义乌商城集团网站建设快推广app下载
  • 那个网站做二手买卖的宁德网站建设制作
  • 网站如何强制修改主页 源码WordPress文章分享图
  • d开头的做网站的软件东莞电子网站建设哪儿有
  • 怎样安装网站模板系统的超级宗门
  • 福建建设执业注册中心网站做像淘宝这样的购物网站要多少钱
  • 济南企业自助建站杭州建站公司
  • 如何查网站服务器速度中国建设银行账户查询
  • 中国在菲律宾做网站广东省建筑工程信息网
  • 宜昌市住房城乡建设网站免费申请网站永久域名
  • 做网站linux和win长沙公司制作网站费用
  • 百通互联网站建设淮北哪里做网站
  • 网站建设需要学些什么网站改手机版
  • seo研究中心好客站天津门头设计制作价格
  • 门户网站开发设计报告做化工的在哪个网站做平台好
  • 八旬老太做直播 什么网站免费制作二维码的网站
  • 中小型网站建设资讯湛江网站建设方案外包
  • 网站选择语言怎么做校园网站建设毕业设计
  • 如何为企业网站设计完整的推广方案wordpress禁用谷歌的插件
  • 51自学网360手机优化大师安卓版
  • 浙江省城乡和建设厅网站首页个人养老金
  • 黑龙江网站制作平台网站开发合同范本下载
  • 天津房地产网站建设怎么做钓鱼网站吗
  • 网站每年都要备案吗移动开发平台
  • 合肥专业做网站公司免费单页网站模板
  • 淘宝做网站退款北京互联网企业有哪些