Redis的两种持久化方式---RDB、AOF

news2024/11/24 5:47:01

rdb其实就是一种快照持久化的方式,它会将Redis在某个时间点的所有的数据状态以二进制的方式保存到硬盘上的文件当中,它相对于aof文件会小很多,因为知识某个时间点的数据,当然,这就会导致它的实时性不够高,如果突然停机,那么会导致大量丢失数据,所以需要AOF来配合使用。

而AOF是一种追加日志的持久化方式, 在先执行完写操作命令后,然后把该命令以追加的方式写入文件尾。它会比rdb文件大很多,因为一直在记录命令嘛,所以由此引入了aof重写的一个机制。之后就是 Redis 重启时,会读取该文件记录的命令,然后逐一执行命令的方式来进行数据恢复。

通常这两个会结合来进行配置,先进行rdb数据恢复,然后再通过aof进行数据恢复。

先执行命令,再写日志------>【避免额外的检查开销不会阻塞当前写操作命令的执行

所以数据完整性上它其实是更可靠的持久化方式,因为它几乎可以保证每个写操作都被记录下来,并且在几乎不会发生数据丢失的情况。但是之所以说是几乎,其实是取决于AOF日志sync属性的配置的。

当Redis重启时,它可以重新执行这些写命令来恢复数据状态。但是就是因为它会将每个命令记录下来,所以导致它比RDB文件大太多了,而且如果一个key有多个写操作,那么AOF也会多次进行记录,但是只有最后一次写操作才有用嘛,所以就可以执行bgrewriteaof命令,让AOF文件执行重写功能,来达到用最少的命令达到相同效果。

在这里插入图片描述
而在使用持久化机制时,我们其实也可以选择同时使用RDB和AOF,也可以只使用其中一种。不过同时使用两种方式时,在Redis实例重启的时候,就可以使用RDB持久化文件重新构建内存,再使用AOF重放近期的操作指令来实现完整恢复重启之前的状态。

把RDB理解为一整个表全量的数据,AOF理解为每次操作的日志,服务器重启的时候先把表的数据全部搞进去,但是他可能不完整,你再回放一下日志,数据不就完整了嘛

不过Redis本身的机制是 AOF持久化开启且存在AOF文件时,优先加载AOF文件;AOF关闭或者AOF文件不存在时,加载RDB文件;加载AOF/RDB文件成功后,Redis启动成功; AOF/RDB文件存在错误时,Redis启动失败并打印错误信息。

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

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

相关文章

Scrapy 爬取旅游景点相关数据(三)

这一节我们将之前爬取到的景点数据进行解析,并且保存为excel,便于后续使用,本节包含 (1) 景点数据解析 (2)数据保存到excel 1 编写爬虫 这次继续改进第二节的爬虫,新建一个爬虫文…

C#如何引用dll动态链接库文件的注释

1、dll动态库文件项目生成属性中要勾选“XML文档文件” 注意:XML文件的名字切勿修改。 2、添加引用时XML文件要与DLL文件在同一个目录下。 3、如果要是添加引用的时候XML不在相同目录下,之后又将XML文件复制到相同的目录下,需要删除引用&am…

蓝桥强化宝典(3)BFS

一、定义 广度优先搜索(Breadth-First Search, BFS)是另一种用于遍历或搜索树或图的算法。与深度优先搜索(DFS)沿着树的深度遍历不同,广度优先搜索会逐层遍历图的顶点。它从一个指定的源顶点开始,首先访问这…

失业潮下,有人靠天工AI做副业年入10万?

前言 你好,我是咪咪酱 这篇文章总结2个AI副业项目,不用写代码,就能做的2个副业项目。 第一:AI生成微信表情包,上传到微信表情包平台等,坚持下去,会有可观的收入。 第二:AI生成连载…

Java 8 中 20 个高频面试题及答案

文章目录 前言20 道高频题问题 1:给定一个整数列表,使用 Stream 函数找出列表中所有的偶数?问题 2:给定一个整数列表,使用 Stream 函数找出所有以 1 开头的数字?问题 3:如何使用 Stream 函数在给…

1.ESP32-CAM 下使用 ESP-IDF 打开摄像头

主要资料: 乐鑫官方编程指南 ESP-IDF 编程指南安信可官方模块页 安信可-ESP32-CAM摄像头开发板官方使用教程 安信可ESP32-CAM摄像头开发demo–局域网拍照、实时视频、人脸识别 (开发环境是Linux) 本文目标是在 Windows 下跑通摄像头 hello …

国衍科技——RFID技术的应用

在文物馆藏信息的记录与管理过程中,准确性和详细性是至关重要的。无论是大型博物馆还是私人收藏馆,都需要有效的方法来确保馆藏文物信息的可追溯性和可访问性,才能提供更好的服务和保护馆藏资源。而结合射频识别(RFID)…

2-46 基于matlab的声音信号的短时能量、短时过零率、端点检测

基于matlab的声音信号的短时能量、短时过零率、端点检测。通过计算计算短时能量、调整能量门限,然后开始端点检测。输出可视化结果。程序已调通,可直接运行。 2-46 短时能量 短时过零率 端点检测 - 小红书 (xiaohongshu.com)

未来的智能农业:智能合约如何提升农业生产效率和可持续性

随着全球人口的增长和资源的有限性,农业生产面临着越来越大的挑战。如何在提高生产效率的同时保障可持续发展成为全球农业发展的关键问题。智能合约作为一种基于区块链技术的自动化执行合约,正在逐渐应用于农业领域,为农业生产带来了新的机遇…

【MATLAB源码-第238期】基于simulink的三输出单端反激flyback仿真,通过PWM和PID控制能够得到稳定电压。

操作环境: MATLAB 2022a 1、算法描述 概述 反激变换器是一种广泛应用于电源管理的拓扑结构,特别是在需要隔离输入和输出的应用中。它的工作原理是利用变压器的储能和释放能量来实现电压转换和隔离。该图展示了一个通过脉宽调制(PWM&#…

C++——QT:保姆级教程,从下载到安装到用QT写出第一个程序

登录官网,在官网选择合适的qt版本进行下载 这里选择5.12.9版本 点击exe文件下载,因为服务器在国外,国内不支持,所以可以从我的网盘下载 链接: https://pan.baidu.com/s/1XMILFS1uHTenH3mH_VlPLw 提取码: 1567 --来自百度网盘超级…

git merge VS git rebase VS git cherry-pick

git merge VS git rebase VS git cherry-pick 在Git中,git merge、git rebase和git cherry-pick都是用于整合不同分支中的更改到当前分支的命令。它们各有特点和适用场景。 Git Merge git merge 是一种将一个分支的更改合并到另一个分支的方法。它创建一个新的提…

用Postman Flows打造你的专属API:外部公开,轻松上手!

引言 Postman Flows 是一个使用 GUI 进行无代码 API 调用流程创建的服务。这篇文章我尝试使用 Flows 来构建将 Momento Topic 中的数据保存到 TiDB 的保存 API,因此想分享一些使用过程中的技巧等。 实现内容 将从 Momento Topics 配发的 JSON 数据保存到 TiDB 中。…

算法-BFS搜索

题目一 解题思路 比较标准的暴力搜索空间换时间的策略 二维数组map表示具体地图,far表示遍历过程中某点到起点的距离。 队列 q 表示在遍历过程中当前距离的所以节点坐标。 每次的节点寻找其上下左右四个方向可以继续前进的点(这里在过程中会发生两个…

Java之多线程-同步代码块

线程同步 Java中提供了线程同步的机制,来解决上述的线程安全问题。 Java中实现线程同步,主要借助synchronized关键字实现。 线程同步方式: 同步代码块 同步方法 锁机制 1)同步代码块 格式: //Object类及其子类…

Web网页端IM产品RainbowChat-Web的v7.1版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统)。 ► 详细介绍:http://www.52im.net/thread-2…

研发(RD)注意事项 / 复杂项目规划、控制方法 PERT 和 CPM

注:机翻,未校对,去掉了原文中广告。 What Is Research and Development (R&D)? 什么是研发(R&D)? Investopedia / Ellen Lindner Research and Development An ongoing effort to develop or impr…

Spring Boot入门指南:留言板

一.留言板 1.输⼊留⾔信息,点击提交.后端把数据存储起来. 2.⻚⾯展⽰输⼊的表⽩墙的信息 规范: 1.写一个类MessageInfo对象,添加构造方法 虽然有快捷键,但是还是不够偷懒 项目添加Lombok。 Lombok是⼀个Java⼯具库,通过添加注…