了解Redis数据持久化(下)

news2024/11/17 17:52:17

4.AOF 写后日志,避免宕机数据丢失

4.1 AOF说明

  • AOF日志存储的是Redis服务器的顺序指令序列
  • 只记录对内存进行修改的指令
  • append-only file(AOF)
  • AOF主要是主线程在执行,将日志写入磁盘的过程中,如果磁盘压力太大,写入速度过慢,就会影响后续的操作。
  • 比较熟悉的是数据库写前日志,在执行操作前先把修改的数据记入日志,若发生错误了,直接恢复。但是AOF写后日志:先执行命令,写入内存,然后才记录日志。

 

4.2 写前与写后日志对比

写前日志(Write Ahead Log, WAL):

        在实际写数据之前,将修改的数据写到日志文件中,故障恢复得以保证。(先记日志,在执行命令,不会对指令进行语法检查,所以有可能见错误的命令记录,Redis要使用日志恢复数据的话也可能会导致错误)。比如 MySQL Innodb 存储引擎 中的 redo log(重做日志)便是记录修改的数据日志,在实际修改数据前先记录修改日志在执行修改数据。

 写后日志: 

        先执行「写」指令请求,将数据写入内存,再记录日志。Redis记录的每一条命令都是以文本的形式保存的。

        为什么 Redis 使用写后日志这种方式呢?写后日志优点:

  • 写后日志避免了额外的检查开销,不需要对执行的命令进行语法检查。如果使用写前日志的话,就需要先检查语法是否有误,否则日志记录了错误的命令,在使用日志恢复的时候就会出错。避免可能记录错误命令导致系统客户端出错的情况
  • 另外,写后才记录日志,不会阻塞当前的「写」指令执行。
  • 如果刚执行完一个命令就宕机了,还没来得及记录日志,就可能会造成数据丢失的风险。如果Redis作为缓存,还可以从后端数据库里重新读入数据进行恢复,如果Redis作为数据库那么此时又没有写入日志,那么久无法进行恢复了。
  • 但是如果还没有记录这个写操作,宕机了,就会失去这次操作的数据,AOP避免了当前操作阻塞,但是有可能回引起下一次操作阻塞。AOP主要是主线程在执行,将日志写入磁盘的过程中,如果磁盘压力太大,写入速度过慢,就会影响后续的操作(还没记入宕机,数据丢失,影响下一次操作。磁盘写入,数据过多压力太大,速度缓慢。)

4.3 AOF对日志的要求

        Redis接收 [set key MygeByte]命令将数据写到内存后,Redis会按照相关格式写入到AOF文件:

「*3」:表示当前指令分为三个部分,每个部分都是 「$ + 数字」开头,紧跟后面是该部分具体的「指令、键、值」。
「数字」:表示这部分的命令、键、值多占用的字节大小。比如 「$3」表示这部分包含 3 个字节,也就是 「set」指令。

4.4.写回策略

         仔细分析的话,你就会发现,这两个风险都是和AOF写回磁盘的时机相关的。这也就意味着,如果我们能够控制一个写命令执行完后AOF日志写回磁盘的时机,这两个风险就解除了。写回机制就很有必要了。

  • 为了提高文件的写入效率,当用户调用 write 函数,将一些数据写入到文件的时候,操作系统通常会将写入数据暂时保存在一个内存缓冲区里面,等到缓冲区的空间被填满、或者超过了指定的时限之后,才真正地将缓冲区中的数据写入到磁盘里面。
  • 若计算机出现一些失误或者异常,内存缓冲区里的写入数据会丢失。

 写回策略:

         可以根据系统对高性能和高可靠性的要求,来选择写回策略。总结如下:

        想要获得高性能,就选择 No 策略;如果想要得到高可靠性保证,就选择 Always 策略;如果允许数据有一点丢失,又希望性能别受太大影响的话,那么就选择 Everysec 策略。

 

 

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

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

相关文章

USB3.2 摘录(九)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) USB3.2 摘录(六) USB3.2 摘录&…

HCIA--网络地址转换NAT技术

NAT(Network Address Translation,网络地址转换技术是为了缓解IPv4地址有限的问题。 NAT技术主要用于实现内部网络的主机访问外部网络。一方面NAT缓解了IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升…

【ACL2024教程】大型语言模型对抗攻击的脆弱性,200多页ppt

本教程全面概述了大型语言模型(LLMs)在对抗攻击下暴露的脆弱性——这是一个可信机器学习中新兴的跨学科领域,结合了自然语言处理(NLP)和网络安全的视角。我们强调了单模态LLM、多模态LLM以及集成LLM的系统中现有的脆弱…

FPGA上板项目(三)——RAM测试

目录 实验内容实验原理实验步骤实验用时序波形HDL 代码仿真综合实现上板测试 实验内容 对 FPGA 内部的 RAM 进行数据读写操作。 实验原理 RAM (Random Access Memory),是可以进行数据交换的存储器,可读可写;而 ROM&…

Docker一行命令安装MySQL

1 前言 在Linux系统中安装MySQL数据库是一件繁琐的事情,经常遇到各种问题,浪费大量时间。Docker的出现很好的解决这个问题,下面然我们来学习如何在Docker中用一行命令安装MySQL。 2 安装Docker 这里以CentOS系统为例,步骤非常简…

这4款专业的思维导图工具教你怎么快速制作脑图。

思维导图怎么制作?其实很简单,在制作思维导图之前,先要明确自己的导图主体,然后就可以去选择一个合适的工具,就可以开始制作。如果不知道如何挑选工具的话,我可以帮助大家列举几个。 1、福昕365脑图 传送门…

关于前端布局的基础知识

float 横向布局 float 实现横向布局,需要向横着布局的元素添加float 其值left right 存在问题 如果使用float 所在父级五高度,会导致下方的元素上移 top的高度被吞了 解决方法: 给父级元素设置高度:不推荐,需要给父级…

盘点15款主流客户管理系统,助力企业选型!

本文将盘点15款主流客户管理系统: 简道云、纷享销客、销售易、HubSpot、Zoho CRM、SAP CRM、Oracle CRM、金蝶云星空 CRM、用友 CRM、悟空 CRM、Salesforce、Microsoft Dynamics 365、亿客 CRM、八百客 CRM、CloudCC CRM。 在当今的商业环境中,客户管理系…

能大致讲一下Chat GPT的原理吗?

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 话题群精选了三位网友的回答,从不同的角度阐释了Chat GPT的原理。 第一位网友的回答: 不给你扯长篇大论&#…

SpringBoot整合MyBatis使用自定义TypeHandler

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

系统知识小百科:如何禁用电脑无关软件!

禁用电脑上的无关软件是提升系统性能和安全性的有效手段。 以下是一些主要的方法来帮助你禁用这些软件: 一、通过Windows系统设置卸载无用软件 打开设置:按下Win I打开Windows设置。 进入应用管理:点击“应用”选项,这里会列出…

2024最新盘点!哪些仓库管理系统值得推荐?

本文将对16款仓库管理系统进行盘点: 简道云仓库管理系统、Oracle Warehouse Management、富勒、音飞储存、Microsoft Dynamics 365、金蝶、Logiwa、易订货、Fishbowl Warehouse、百卓轻云、智慧记、Oracle NetSuite、鸿链科技 WMS 仓库管理系统、Infor CloudSuite、…

武汉流星汇聚:亚马逊赋能中小企业,跨境电商市场举足轻重地位稳

在全球经济一体化的浪潮中,跨境电商作为推动国际贸易的重要力量,正以前所未有的速度发展。在这场全球性的商业竞赛中,亚马逊以其卓越的市场表现、强大的技术实力和深厚的品牌影响力,稳居跨境电商市场的领头羊地位,其举…

视频美颜SDK与直播美颜插件的开发指南:从基础到高级应用

今天,笔者将详细讲解如何从基础到高级应用开发视频美颜SDK与直播美颜插件。 一、视频美颜SDK的基础概念与架构设计 视频美颜SDK是一种集成在移动应用或桌面应用中的软件开发工具包,允许开发者在视频流中实现实时美颜效果。其核心功能包括肤色调整、磨皮…

Vue3.5新增的baseWatch让watch函数和Vue组件彻底分手

前言 在Vue 3.5.0-beta.3版本中新增了一个base watch函数,这个函数用法和我们熟知的watch API一模一样。区别就是我们之前用的watch API是和Vue组件以及生命周期是一起实现的,他们是深度绑定的。而Vue3.5新增的base watch函数是一个新的函数&#xff0c…

飞速(FS)400G SR4光模块概述

随着光网络领域新技术的不断涌现,数据传输的能力和效率也在持续提升。400G SR4光模块的出现不仅扩展了短距离光通信的可能性,还为未来迈向800G及更高带标准宽奠定了基础。本文深入探讨了飞速(FS)400G SR4光模块的特点和重要性&…

《计算机操作系统》(第4版)第10章 多处理机操作系统 复习笔记

第10章 多处理机操作系统 一、多处理机系统的基本概念 1. 多处理机系统的引入 (1)CPU 时钟频率接近极限。 (2)增加系统吞吐量。 (3)节省投资。 (4)提高系统可靠性。 2.多处理机系统的类型 (1)紧密耦合MPS 和松散耦合MPS ①紧密耦合MPS 紧密耦合通常是通过高速总线或高速交叉开…

页面设计任务 商品详情页(带评论区)

目录 效果图: 任务描述 源码: 详细讲解: 1.产品信息部分 2.用户评论区域 效果图: 任务描述 页面结构: 页面应包括一个标题部分、一个产品展示区和一个客户评价区。使用图片展示产品,并添加描述。客户评价区展示一…

删除Vue2残留配置文件解决异常:Cannot find module ‘@vue/babel-plugin-transform-vue-jsx‘

背景 完成Vue2代码升级为Vue3后,将新代码上传至代码库。在修改源代码库代码后,启动项目,提示:Cannot find module ‘vue/babel-plugin-transform-vue-jsx‘,尝试安装该第三方库后仍然无效。 解决方案: 删…

浅谈【数据结构】图-图的存储

目录 1、图的存储 2、邻接表 3、十字链表 谢谢帅气美丽且优秀的你看完我的文章还要点赞、收藏加关注 没错,说的就是你,不用再怀疑!!! 希望我的文章内容能对你有帮助,一起努力吧!!…