Redis怎么保证数据不丢失

news2024/10/5 18:30:00

目录

一、Redis使用持久化保证数据不丢失

二、Redis 持久化的三种方式

三、混合持久化的流程


一、Redis使用持久化保证数据不丢失

Redis 中的数据是存放在内存中的,这样可以保证 Redis 高效的运行,然而内存中的数据会随着系统的重启而丢失,那么 Redis 是如何保证数据不丢失的呢?

Redis 保证数据不丢失的手段是持久化,持久化是指将 Redis 内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化,也就是说 Redis 使用了“持久化”技术来保证 Redis 中的数据不丢失

二、Redis 持久化的三种方式

  • 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘;
  • 文件追加方式(AOF, Append Only File),记录所有的操作命令,并以文本的形式追加到文件中;
  • 混合持久化方式,Redis 4.0 之后新增的方式,混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能减低数据丢失的风险。

对于Redis持久化的三种方式,个人主页中也介绍了其中的两种,接下来介绍一个混合持久化,什么是混合持久化呢?其实就是将RDB与AOF结合起来进行数据持久化

三、混合持久化的流程

我们知道,在使用AOF进行数据持久化的时候,当AOF文件过大的时候就会触发重写机制,而这里的重写其实并不完全是将之前的命令整理之后再以文本的方式进行储存,而是将整理好的命令以二进制的方式进行存储,接下来看一下实例。

输入几个Redis命令,由于是实时存储,aof文件中就会立马写入命令

随后找到aof文件并打开,观察还未重写的aof文件 

这里可以看出aof是以文本的方式将命令进行追加到文件中的,并且以特定的符号进行分隔

由于没有达到aof文件默认的重写条件,这里进行手动重写,并且我们也能发现这里的重写是在后台进行的,也就是在子进程中进行重写操作的

重写完成之后,再次打开aof文件进行观察 (退出客户端ctrl+d)

这里就可以发现,重写之后,aof文件中的命令就从文本的方式变成了二进制的方式的存储

打开客户端,输入一些命令,后续再查看aof文件

这里就可以发现aof文件的重写其实是采用的混合持久化的方式,将重写的数据以二进制来存储,新的数据仍然以文本的方式追加

至于为什么要采取混合持久化的方式,这是因为二进制的存储比文本存储的方式更加节省空间,同时在Redis服务器重启的时候加载aof文件的速度也是有所提升的

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

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

相关文章

c# 字符串转换为byte

c# 字符串转换为byte using System.Text; class proj {internal static void Main(string[] args){byte[] anew byte[3];Console.WriteLine("打印a");Console.WriteLine("a的长度{0}",a.Length);foreach (byte b in a){ Console.WriteLine(b); }a Encodi…

LangChain 实现给动物取名字

mkdir langchain-llm-appcd langchain-llm-app # 用vscode 打开当前目录 code .在macOS上通过终端打开Visual Studio Code(VS Code),您可以按照以下步骤操作: 安装VS Code:首先,确保您已经在Mac上安装了Vis…

Pytest+Allure生成自动化测试报告!

前言 在自动化测试中,有unittestHTMLTestRunner自动化测试报告,但是生成的测试报告不够美观详细,今天我们来学习一下PytestAllure生成自动化测试报告。 一:安装python中的allure依赖库 在dos窗口中,输入下面三个命令…

邀请报名|11月24日阿里云原生 Serverless 技术实践营 深圳站

活动简介 “阿里云云原生 Serverless 技术实践营 ” 是一场以 Serverless 为主题的开发者活动,活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对 Ser…

美国服务器:全面剖析其主要优点与潜在缺点

​  服务器是网站搭建的灵魂。信息化的今天,我们仍需要它来为网站和应用程序提供稳定的运行环境。而美国作为全球信息技术靠前的国家之一,其服务器市场备受关注。那么,美国服务器究竟有哪些主要优点和潜在缺点呢? 优点 数据中心基础设施&a…

开源与闭源:大模型时代的技术交融与商业平衡

一、开源和闭源的优劣势比较 1.1 开源 优势: 1.技术共享与吸引人才: 开源促进了技术共享,吸引了全球范围内的人才参与大模型的发展,形成了庞大的开发者社区。 2.推动创新: 开源模式鼓励开发者共同参与,推动…

Android 屏幕适配

目录 一、为什么要适配 二、几个重要的概念 2.1 屏幕尺寸 2.2 屏幕分辨率 2.3 屏幕像素密度 2.4 屏幕尺寸、分辨率、像素密度三者关系 三、常用单位 3.1 密度无关像素(dp) 3.2 独立比例像素(sp) 3.3 dp与px的转换 四、解决方案 4.1 今日头条…

golang学习笔记——基础01

文章目录 golang概述Go 语言特色Go 语言用途 Go 语言结构执行 Go 程序 Go 语言包管理01Go 语言包管理02Go 语言基础语法Go 标记行分隔符注释标识符字符串连接关键字、预定义标识符Go 语言的空格格式化字符串 Go 语言数据类型数字类型浮点型其他数字类型 Go 语言变量变量声明零值…

linux:删除乱码文件、目录

由于编码原因,在linux服务器上上传、创建中文文件或目录时,会产生乱码,如果想删除它,发现用rm命令是删除不了的,这种情况下,用find命令可以删除乱码的文件或目录。 首先进入乱码文件或目录所在的目录&…

伦敦银和美白银的关系

与黄金相似,世界上白银交易的基础就是伦敦白银市场,人们利用设立在伦敦的专们负责清算银行(与黄金的清算银行相同)所开设的账户进行白银保证金交易。在伦敦市场,以美元清算的伦敦白银价格,是以美元买进1金衡…

Pytorch torch.norm函数详解用法

torch.norm参数定义 torch版本1.6 def norm(input, p"fro", dimNone, keepdimFalse, outNone, dtypeNone)input input (Tensor): the input tensor 输入为tensorp p (int, float, inf, -inf, fro, nuc, optional): the order of norm. Default: froThe following …

【LeetCode刷题日志】20.有效的括号

🎈个人主页:库库的里昂 🎐C/C领域新星创作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:LeetCode 刷题日志🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,…

[工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备

目录 一、什么是人机界面 二、什么是PLC人机交互界面HMI 三、人机界面设计的功能列表 四、开发主机与PLC的连接方式 五、开发主机与HMI的连接方式 六、HMI组态 一、什么是人机界面 人机界面是指人与机器或系统之间的交互界面。它是人类与计算机或其他设备之间进行信息交换…

计算机毕业设计选题推荐-人才招聘微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 1》(5)

《Linux操作系统原理分析之Linux 进程管理 1》(5) 4 Linux 进程管理4.1 Linux 进程概述4.1.1 Linux 进程的组成4.1.2 Linux 进程在处理机上的执行状态4.1.3 进程空间和系统空间4.1.4 进程上下文和系统上下文 4 Linux 进程管理 4.1 Linux 进程概述 4.1.…

【Coppeliasim】 通过TCP与coppeliasim通信

仿真客户端, 代码中启动了tcp服务器。 simrequiresim socketrequiresocket-- 以下函数将数据写入套接字(仅为简单起见只处理单个数据包): writeSocketDatafunction(client,data)local headerstring.char(59,57,math.mod(#data,25…

element ui修改select选择框背景色和边框色

一、修改选择框的背景色和边框色 style部分 .custom-select /deep/ .el-input__inner {color: #fff!important;border: 1px solid #326AFF;background: #04308D !important; } html部分 <el-select class"custom-select" v-model"dhvalue" placeholde…

高济健康:数字化科技创新与新零售碰撞 助推医疗产业优化升级

近日&#xff0c;第六届中国国际进口博览会在上海圆满落幕&#xff0c;首次亮相的高济健康作为一家专注大健康领域的疾病和健康管理公司&#xff0c;在本届进博会上向业内外展示了围绕“15分钟步行健康生活圈”构建进行的全域数字化升级成果。高济健康通过数字化科技创新与新零…

Linux安装OpenCV并配置VSCode环境

Linux安装OpenCV并配置VSCode环境 安装OpenCV环境安装必需工具下载并解压OpenCV库&#xff08;Opencv Core Modules和opencv_contrib&#xff09;创建构建目录&#xff0c;进行构建验证构建结果安装验证安装结果 配置VSCode环境创建项目文件修改配置信息执行程序 安装环境 Ubun…

【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析D

STEMA考试-计算思维-U8级(样题) 21.下面哪个图形与其它图形不同&#xff1f;&#xff08; &#xff09; A. B. C. D. 22.下列哪个选项是由下图旋转得到的&#xff1f;&#xff08; &#xff09; A. B. C. D. 23.下面哪个图形是用4个 拼成的&#xff1f;&#xff08; &#xf…