Redis持久化 RDB AOF

前言

redis的十大类型终于告一段落了,下面我们开始redis持久化新篇章

为啥需要持久化呢?

我们知道redis是挡在mysql前面的带刀侍卫

是在内存中的,假如我们的redis宕机了,难道数据直接冲入mysql???

这显然是不可能的,mysql肯定扛不住这样的场景,所以我们有了redis持久化策略

实际上redis是可以使用rdb和aof混合策略的

但是在本篇博客中笔者先单独谈论rdb,以及一点点的源码分析

再考虑aof的情况

废话不多说,现在我们开始今天的内容吧

RDB

主动触发

rdb主要作用是指定时间内写入硬盘,在恢复的时候全部写入内存

生成的文件叫做dump.rdb 我们可以在conf文件中修改其的保存规则

默认的规则如下

这里分为redis6.0.16以前和6.2以后

6.0.16 保存规则是

900s 至少一次修改

300s 10w次修改

60s 1w次修改

6.2以上版本是

3600s 1次

300s 100次

60s 1000次

注意:这里的参数不太好理解,官网的表述也是含糊其辞的

为了方便测试 我们修改成5秒至少两次修改,用于查看情况

可以使用vim编辑器对conf文件进行编辑

我们还可以对生成的dump文件名以及路径进行修改方便观察

这里是尝试过了忘记截图了

我们直接说结论:

在五秒内执行两次写操作,dump文件会进行更新

在五秒外 甚至十秒内写入两次也是会更新的,笔者查阅资料未果,于是开始阅读源码

最终是在server.c的serverCorn函数中发现

这里我们就能发现大于我们设置的时间 也是ok的

下面我们不做过多测试,具体可以自行进行测试

注:记得开两个服务端,一个在linux一个在redis方便查看对应的文件大小变化

以上四redis的主动调用

下面我们来说说redis的rdb的手动保存

这里我们修改完config文件箱查看是否生效可以使用config get/set 属性来查看

手动触发

主要是两个命令

save 和 bgsave

save指令是不可以使用的因为如果使用就会直接阻塞,直到保存完成再允许用户线程再访问

bgsave则是fork一个子进程来完成rdb文件的快照服务,不进行阻塞

生产上是万万不能使用save来保存快照的

优缺点

下面我们谈谈rdb的优缺点

优点:

文件非常紧凑,非常适合备份文件,一把抓,适合灾难恢复

最大限度提高了redis的性能,子进程制度则rdb,父进程负责读写数据

缺点:

可能会丢失最近一次修改的数据,因为还没有达到保存快照的条件

在数据量比较庞大的时候,子进程也会很耗时,且非常影响服务器的性能

检查和修复rdb文件

假设我这里随便在rdb文件后面添加一串乱码

此时redis服务器重启的时候就无法成功

我们需要找到这个文件夹中使用修复工具

此时就修复成功了

出现rdb快照的情况

注:禁用rdb快照 在设置的时候直接设置save ""即可

rdb优化配置项

1.stop-write-on-bgsave-error yes 默认为yes,快照写入 失败的时候,直接停止,保证数据一致性

2.rdbcompression yes 压缩,占用空间大了只保存最后一次修改的结果

3.rdbchecksum 算法校验可靠性   类似于之前tcp那块的校验和算法

4.rdb-del-sync-files 复制实例的时候没有指定持久化的直接删除,默认为no

AOF 

我们刚刚说了RDB,那么为啥还需要一个AOF呢

他的诞生就是为了解决rdb可能直接丢失一次最近写入的数据,因为不满足保存快照的条件

注意 redis默认是不打开aof的,需要设置

appendonly  设置为yes即可

主要做的事情就是以日志形式保存设置的命令,在重启的时候直接重新执行一遍

下面我们介绍一下aof执行的流程

三种写回策略:

Always    写一条备份一条

everysec   每秒进行备份

no             不自己备份,靠操作系统决定啥时候写回

文件说明

文件以前是和rdb放一块的,现在放在dir下面

在redis6之前是以appendonly.aof保存

现在是以三个文件混合保存

分别是 base   incr    清单文件

每次写入先放到incr增量文件中

incr文件可能存在多个,base文件只有一个

异常恢复

使用redis-check-aof --fix

优缺点

优点:

默认一秒写回,最多丢失一秒的数据

写一半断了也可以使用恢复策略

可以轻松导出文件,可读性强

假设我flushdb了   只要没继续进行写操作,是可以修改aof文件救回来的

缺点:

等效文件大于rdb,恢复速度慢于rdb

aof重写机制

随着aof文件的越来越大,占用空间也就越来越大,需要一定的瘦身计划

所以在达到一定的峰值之后会进行内容压缩

也就是假设我这里对k1进行了三次的设置

只会保存最后一次的更改

混合机制

两者共存的时候默认先加载aof,但是默认使用rdb

aof是老大

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

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

相关文章

【洛谷】P9241 [蓝桥杯 2023 省 B] 飞机降落

挺有意思的一道题,分享给大家 题目链接 P9241 [蓝桥杯 2023 省 B] 飞机降落 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 输入格式 输出格式 输入输出样例 说明/提示 思路 一开始尝试贪心能不能做,但是不好确定飞机的顺序 因为这题的数…

时序预测 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络时间序列预测

时序预测 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现OOA-BP鱼鹰算法优化BP神经网络时间序列预测(完整源码和数据…

Available platform plugins are: linuxfb, minimal, offscreen, vnc.

说明: buildroots根文件中已经移植好了QT的库,但是运行QT交叉编译之后的可执行文件报错: qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in "" This application failed to start because no Qt platf…

认识V模型、W模型、H模型

软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。 在软件工程、项目管理、质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值也会更大。 要关注软件工程、质量管理以及配置管理与软件测试…

记录实现水平垂直居中的5种方法

记录块级元素实现水平垂直居中的方法&#xff0c;效果如图。 <div class"parent"><div class"child">居中元素</div> </div><style> .parent {position: relative;width: 600px;height: 300px;background-color: #679389; …

Spring IoC详解

1.什么是IoC Spring IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09;是Spring框架的核心之一&#xff0c;它是一种设计模式&#xff0c;也称为依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;。在传统的程序设计中&#xff0c;对象…

算法学习——LeetCode力扣动态规划篇10(583. 两个字符串的删除操作、72. 编辑距离、647. 回文子串、516. 最长回文子序列)

算法学习——LeetCode力扣动态规划篇10 583. 两个字符串的删除操作 583. 两个字符串的删除操作 - 力扣&#xff08;LeetCode&#xff09; 描述 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个…

HarmonyOS 应用开发之Stage模型绑定FA模型ServiceAbility

本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。 UIAbility关联访问ServiceAbility UIAbility关联访问ServiceAbility和UIAbility关联访问ServiceExtensionAbility的方式完全相同。 import common from ohos.app.ability.common; import hilog from o…

Qt源码调试步骤记录

1.源码&#xff1a; 两种方式&#xff0c;要么安装qt时选择source&#xff0c;要么从官网下载源码&#xff0c;然后在qt creator中设置路径。二选一即可。我选的第二种。 1.1.第一种&#xff0c;安装时选择source&#xff1a; 1.2.第二种&#xff0c;下载源码设置路径&#x…

安装部署MariaDB数据库管理系统

目录 一、初始化MariaDB服务 1、安装、启动数据库服务程序、将服务加入开机启动项中。 2、为保证数据库安全性和正常运转&#xff0c;需要对数据库程序进行初始化操作。 3、配置防火墙&#xff0c;放行对数据库服务程序的访问请求&#xff0c;允许管理员root能远程访问数据…

灵动翻译音频文件字幕提取及翻译;剪映视频添加字幕

参考&#xff1a;视频音频下载工具 https://tuberipper.com/21/save/mp3 1、灵动翻译音频文件字幕提取及翻译 灵动翻译可以直接chorme浏览器插件安装&#xff1a; 点击使用&#xff0c;可以上传音频文件 上传后自动翻译&#xff0c;然后点击译文即可翻译成中文&#xff0c;…

跨越界限:AI大模型在关键技术领域的综合应用

AI大模型学习 在当前技术环境下&#xff0c;AI大模型学习不仅要求研究者具备深厚的数学基础和编程能力&#xff0c;还需要对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法&#xff0c;AI大模型学习能够不断提升模型的准确性和效率&#xff0c;为人类生活和工作带…

深入理解MySQL:拼接字符串、查询、删除表和创建索引的关键命令

MySQL是一种功能强大的关系型数据库管理系统&#xff0c;广泛应用于各种类型的应用程序中。本文将介绍MySQL中一些常用的关键命令&#xff0c;包括拼接字符串、查询、删除表和创建索引&#xff0c;帮助读者更好地理解和利用MySQL数据库。 mysql拼接字符串 在MySQL中&#xf…

android WMS服务

android WMS服务 WMS的定义 窗口的分类 WMS的启动 WindowManager Activity、Window、DecorView、ViewRootImpl 之间的关系 WindowToken WMS的定义 WMS是WindowManagerService的简称&#xff0c;它是android系统的核心服务之一&#xff0c;它在android的显示功能中扮演着…

python安装删除以及pip的使用

目录 你无法想象新手到底会在什么地方出问题——十二个小时的血泪之言&#xff01; 问题引入 python modify setup 隐藏文件夹 环境变量的配置 彻底删除python 其他零碎发现 管理员终端 删不掉的windous应用商店apps 发现问题 总结 你无法想象新手到底会在什么地方…

StructStreaming Batch mode和Continuous mode

StructStreaming Batch mode和Continuous mode 让我们把目光集中到 Structured Streaming&#xff0c;也就是流处理引擎本身。Structured Streaming 与 Spark MLlib 并列&#xff0c;是 Spark 重要的子框架之一。值得一提的是&#xff0c;Structured Streaming 天然能够享受 S…

JWFD流程图转换为矩阵数据库的过程说明

在最开始设计流程图的时候&#xff0c;请务必先把开始节点和结束节点画到流程图上面&#xff0c;就是设计器面板的最开始两个按钮&#xff0c;先画开始点和结束点&#xff0c;再画中间的流程&#xff0c;然后保存&#xff0c;这样提交到矩阵数据库就不会出任何问题&#xff0c;…

本地搭建多人协作ONLYOFFICE文档服务器并结合Cpolar内网穿透实现公网访问远程办公

文章目录 1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 本篇文章讲解如何使用Docker在本地服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问。 Community Edition允许您在本地服务器上安装ONLYOFFICE文档&…

【Vue】搭建第一个vue3+vite前段项目

不要奇怪我为啥突然开始写前端的文章&#xff0c;唉&#xff0c;一切都是公司的任务罢了。 其实这周学习了前端和coverity&#xff0c;但是后者就算学了我也不能写在我博客里&#xff0c;所以还是写一写前端吧。 node.js 和 npm npm是一个类似于 maven 的包管理器。 去以下…

Excel数据分子-----------VLOOKUP函数

选择区域的时候一定要把查询条件所处的列放在第一列。 跨表使用 一定要在括号外边摁回车键。 通配符查找 列后面跟上**&“*”** 近似查找 数值格式问题 HLOOP函数 这个是在行中进行搜索 indexmatch实现匹配查找 先利用match查找出在哪一行&#xff0c;再利用index定…