Redis的持久化(新)

        Redis中数据都保存在内存,但是内存中的数据变换很快,也很容易丢失,比如连接断开、宕机停机等等。而Redis提供的数据持久化机制有RDB(Redis DataBase)AOF(Append Only File)

1.RDB

        RDB是指在指定的时间间隔内将内存中的数据集快照写入到磁盘中,也是默认的持久化的方式,利用数据快照,使用的是写时复制技术,将数据以二进制的格式保存在磁盘。

1.1触发快照的时机(save)

1.1.1手动触发

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

  • save命令:阻塞当前Redis服务,去做持久化操作,直到RDB持久化过程完成为止,不推荐使用。

  • bgsave命令:redis进程执行fork操作创建子进程,子进程负责RDB持久化,完成后子进程自动结束,而且原进程的阻塞只发生在fork阶段。

1.1.2自动触发

        利用save进行相关配置,我们进入到redis.conf文件中,其中Save m n就表示若在m秒里面至少进行了n次数据更改时会自动执行bgsave

        我们将需要持久化的数据写入磁盘中保存,磁盘中的文件名为dump.rdb,和bin在同一个目录,redis启动时,就是读取dump.rdb文件将数据加载进内存中的。文件的名字可在redis.conf文件里面进行修改。

 注意

  1. 如果只开启了rdb,通过shutdown save命令断开Redis的连接时,也会自动执行bgsave。

  2. 在调试级别(debug)中重新启动Redis时,不会清空内存中的数据,这意味着原有的RDB文件仍然有效,即使未执行保存操作。

  3. 当Redis执行全量复制(主从复制)时,如果没有执行save或bgsave命令并且没有添加配置策略,主节点会自动生成RDB文件,并传输给从节点进行数据同步。

1.2RDB持久化和数据恢复的完整流程(bgsave)

        当需要进行持久化时,Redis会单独创建一个子进程来完成持久化操作,这个子进程中所有的数据都和原进程保持一致,而且是一个全新的进程,也会占用内存,这个操作也称为Fork

        此时原进程不进行任何操作,由其子进程完成数据的持久化,子进程会先将快照数据写入到一个临时的文件,等到数据写完了之后,再用这个临时的文件直接替换磁盘上的dump.rdb文件即可。

        但是缺点是如果子进程正在将数据写入临时文件,此时突然宕机,无法将临时文件替换dump.rdb,下次启动后,恢复后的内存数据较与宕机之前相比就会丢失一部分。

        发现整个过程中,原进程是不进行任何IO操作的,这就确保了极高的性能。

1.3RDB方式的优劣分析

1.3.1优点
  • 恢复数据速度快。

  • 节省磁盘空间(二进制格式存储)。

1.3.2缺点
  • fork的时候,会占用内存空间。

  • 可能会丢失数据,不适用于数据一致性高的场景。

2.AOF

日志的形式来记录每个更改的操作,不会记录读的操作,只允许追加而不允许改写。在redis重启或启动之初会读取该文件然后重新构建Redis数据库的数据,这样也不用害怕内存数据的丢失了。

AOF方式Redis默认是不开启的,如果要开启则需要在配置文件中修改,若AOF和RDB同时开启,系统默认选择用AOF来恢复数据,AOF在磁盘中保存的日志文件是"appendonly.aof",文件的路径和RDB一致。

2.1AOF同步频率策略

  • appendsync always :表示每次的修改都会立刻记入磁盘日志文件,性能较差但是能保证数据的一致性。

  • appendsync everysec (默认) :每一秒执行一次数据同步,但可能会在临界点丢失数据。

  • appendfsync no:redis不主动进行同步,把同步时机交给操作系统。

2.2Rewrite压缩

因为AOF采用的是追加写入的方式,为了避免磁盘AOF文件越来越大,新增了重写机制,当文件默认达到128MB时,Redis就会自动进行AOF文件的内容压缩,保留能达到最终结果的最小指令集。

2.2.1重写的整体流程梳理(自动的)
  1. 主进程fork一个子进程去执行重写的操作,主进程正常运行不会阻塞。

  2. 主进程执行的写操作要同时写入AOF缓冲区和AOF_rewrite缓冲区,此时子进程遍历内存数据将自己压缩的指令集先存储到临时文件(新AOF文件),之后向主进程发送信号。

    注意:这里AOF缓冲区是否要根据同步策略将数据同步到磁盘AOF文件中?

    可以进行设置。如果同步,那么数据安全一致性,但是性能会比较低。如果不同步,若此时宕机,会造成数据丢失,但是性能比较高。

  3. 主进程把AOF_rewrite缓冲区中的数据写入到临时文件中。

  4. 使用临时文件(新AOF文件)覆盖旧的AOF文件,完成AOF重写。

2.3AOF持久化和数据恢复的完整流程

  1. 写操作命令先会被追加写入到AOF缓冲区内。

  2. AOF缓冲区根据同步频率策略将缓冲区数据同步到磁盘AOF文件中。

  3. 看磁盘AOF文件大小是否超过阈值,判断要不要rewrite重写。

  4. 如果Redis宕机,重启服务时,会加载AOF文件来进行数据恢复。

2.4AOF文件出现损坏

        如遇到AOF文件损坏,通过.........../bin/redis-check-aof--fix appendonly.aof进行恢复。恢复后重启Redis服务即可。

2.5AOF方式的优劣分析

2.4.1优点
  • 备份机制更加的稳健,丢失数据概率更低。

  • 可读的日志文件。

2.4.2缺点
  • 相比RDB占用更多的磁盘空间。

  • 恢复数据相比RDB更慢。

  • 如果每次写操作都同步,对性能要求较高。

  • AOF文件可能出现损坏,需要手动修复。

                

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

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

相关文章

CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!)

B. AB Flipping 老规矩,自己要模拟一遍样例,发现样例还不够,就自己构造样例,这样做着做着就会有思路。 分析:假如现在有这样一个字符串 BBBAABABBAAA。会发现前三个和后三个一定是不会被操作的,因为不会满…

git-2

1.分离头指针情况下的注意事项 分离头指针指的是变更没有基于某个branch去做,所以当进行分支切换的时候,在分离头指针上产生的commit,很可能会被git当作垃圾清理掉,如果你认为是重要的内容,切记需要绑定分支 2.进一步…

人工智能基础_机器学习050_对比sigmoid函数和softmax函数的区别_两种分类器算法的区别---人工智能工作笔记0090

可以看到最上面是softmax的函数对吧,但是如果当k = 2 那么这个时候softmax的函数就可以退化为sigmoid函数,也就是 逻辑斯蒂回归了对吧 我们来看一下推导过程,可以看到上面是softmax的函数 可以看到k=2 表示,只有两个类别对吧,两个类别的分类不就是sigmoid函数嘛对吧,所以说 …

关闭vscode打开的本地服务器端口

vscode开了本地的一个端口“8443”当本地服务器端口,然后随手把VScode一关,后来继续做发现8443端口已经被占用了。   原来,即便关闭了编译器VScode,服务器依然是被node.exe运行着的。那这个端口怎么才能关掉呢?   …

vue3中toRef创建一个ref对象

为源响应式对象上的某个属性创建一个 ref对象, 二者内部操作的是同一个数据值, 更新时二者是同步的 区别ref: 拷贝了一份新的数据值单独操作, 更新时相互不影响 应用: 当要将 某个prop 的 ref 传递给复合函数时&#xff0c;toRef 很有用 父组件代码: <template><…

第十五届蓝桥杯(Web 应用开发)模拟赛 2 期-大学组(详细分析解答)

目录 1.相不相等 1.1 题目要求 1.2 题目分析 1.3 源代码 2.三行情书 2.1 题目要求 2.2 题目分析 2.3 源代码 3.电影院在线订票 3.1 题目要求 3.2 题目分析 3.3 源代码 4.老虎坤&#xff08;不然违规发不出来&#xff09; 4.1 题目要求 4.2 题目分析 4.3 源代码 …

Go语言网络爬虫工程经验分享:pholcus库演示抓取头条新闻的实例

网络爬虫是一种自动从互联网上获取数据的程序&#xff0c;它可以用于各种目的&#xff0c;如数据分析、信息检索、竞争情报等。网络爬虫的实现方式有很多&#xff0c;不同的编程语言和框架都有各自的优势和特点。在本文中&#xff0c;我将介绍一种使用Go语言和pholcus库的网络爬…

excel单元格内换行按什么快捷键

如果我们使用excel软件的时候&#xff0c;因为一些日常的操作太过繁琐想要简化自己的操作步骤的话&#xff0c;其实是有很多快捷方式在其中的。那么对excel单元格内换行按什么快捷键这个问题&#xff0c;据小编所知我们可以在表格中使用Alt Enter来进行换行。详细内容就来看下…

奇异值分解SVD(Singular Value Decomposition)

原理 奇异值分解是让机器从大量数据集中提取出关键信息的重要手段。&#xff08;矩阵中的泰勒公式&#xff0c;哈哈&#xff09; 思考&#xff1a;如果就矩阵的本质是线性变换而言的话&#xff0c;那A矩阵分解后是不是相当与先进行旋转→放缩→旋转呢&#xff1f; 求解奇异值的…

E云管家微信群聊机器人开发

请求URL&#xff1a; http://域名地址/modifyGroupRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是String登录实例标识chatRo…

linux获得帮助_如何查看命令的用法、作用

Linux获得帮助 多层次的帮助&#xff1a; whatis command --help man and info /usr/share/doc/ Red Hat documentation 、Ubuntu documentation 软件项目网站 其它网站 搜索 whatis 使用数据库来显示命令的简短描述。 [rootlocalhost ~]# whatis rm rm (1) …

腾讯云双11活动最后一天,错过再等一年!

腾讯云双11活动已经进入尾声&#xff0c;距离活动结束仅剩最后一天&#xff0c;记得抓住这次上云好时机&#xff0c;错过这次&#xff0c;就要等到下一年才能享受到这样的优惠力度了&#xff01; 活动地址&#xff1a; 点此直达腾讯云双11活动主会场 活动详情&#xff1a; 1…

Linux中tar命令的几个高级用法

在Linux世界中&#xff0c;Tar命令是一把解密归档世界的魔法工具。无论是打包、压缩还是解压&#xff0c;Tar命令都能胜任。本文将生动地介绍Tar命令的基本用法&#xff0c;并深入探讨五个常用选项&#xff0c;帮助读者在Linux系统中灵活运用这个强大的工具。 一、命令概述 Ta…

【开源】基于Vue和SpringBoot的数字化社区网格管理系统

项目编号&#xff1a; S 042 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S042&#xff0c;文末获取源码。} 项目编号&#xff1a;S042&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5…

在Pycharm中创建项目新环境,安装Pytorch

在python项目中&#xff0c;很多项目使用的各类包的版本是不一致的。所以我们可以对每个项目有专属于它的环境。所以这个文章就是教你如何创建新环境。 一、创建新环境 首先我们需要去官网下载conda。然后在Pycharm下面添加conda的可执行文件。 用conda创建新环境。 二、…

Unity之NetCode多人网络游戏联机对战教程(10)--玩家动画同步

文章目录 前言NetworkAnimation服务端权威客户端权威 前言 这次的动画同步与位置同步&#xff0c;可以说实现思路是一样的&#xff0c;代码相似度也非常高 NetworkAnimation 如果直接挂载这个脚本只有Host&#xff08;服务端&#xff09;才可以同步&#xff0c;Client是没有…

显示器校准软件BetterDisplay Pro mac中文版介绍

BetterDisplay Pro mac是一款显示器校准软件&#xff0c;可以帮助用户调整显示器的颜色和亮度&#xff0c;以获得更加真实、清晰和舒适的视觉体验。 BetterDisplay Pro mac软件特点 - 显示器校准&#xff1a;可以根据不同的需求和环境条件调整显示器的颜色、亮度和对比度等参数…

【Web】攻防世界 难度3 刷题记录(1)

目录 ①lottery ②ics-05 ③mfw ④simple_js ⑤fakebook 感觉自己对一些综合题的熟练度不太够&#xff0c;专项训练一下 ①lottery 抽奖赚钱&#xff0c;钱够9990000可买flag 随便输一串数字抓包&#xff0c;然后查看到一个post请求&#xff0c;api.php,题目里面有附件…

什么是AI PC:人工智能电脑?

大家好啊&#xff0c;我是董董灿。 今天在一个群聊里&#xff0c;聊到了关于 AI PC (人工智能电脑)的话题。 之前看到过关于 AI PC 的新闻&#xff0c;说的是联想集团董事长兼CEO杨元庆在一次演讲中提到了 AI PC 的概念&#xff0c;并且绘声绘色的描绘了AI PC 的发展前景。 下…

Gartner发布2024 年十大战略技术趋势

Gartner发布2024 年十大战略技术趋势 1. AI信任、风险和安全管理&#xff08;AI Trust, Risk and Security Management&#xff09;2.持续威胁暴露管理&#xff08;Continuous Threat Exposure Management&#xff09;3.可持续技术&#xff08;Sustainable Technology&#xff…