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是老大

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Decoupled Multimodal Distilling for Emotion Recognition 论文阅读

Decoupled Multimodal Distilling for Emotion Recognition 论文阅读 Abstract1. Introduction2. Related Works2.1. Multimodal emotion recognition2.2. Knowledge distillation3. The Proposed Method3.1. Multimodal feature decoupling3.2. GD with Decoupled Multimodal …

JUC:ReentrantLock(可打断、锁超时、多条件变量)

文章目录 ReentrantLock特点基本语法可重入可打断(避免死等、被动)锁超时(避免死等、主动)公平锁多个条件变量 ReentrantLock 翻译:可重入锁 特点 可中断可设置超时时间(不会一直等待锁)可设…

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

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

Last-Modified:HTTP缓存控制机制解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

nodejs下载安装以及npm、yarn安装及配置教程

1、nodejs下载安装 ​ 1.1、使用nodejs版本管理工具下载安装,可一键安装、切换不同nodejs版本, nvm-setup.zip:安装版,推荐使用 本次演示的是安装版。 1、双击安装文件 nvm-setup.exe 选择nvm安装路径 例如:E:\Soft…

蓝桥杯算法题-图形排版

题目描述 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi。   假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 1. 该工具会按照图片顺序,在宽度 M 以内&…

Mysql数据库:MHA高可用架构

目录 前言 一、MHA概述 1、什么是MHA 2、MHA的特点 3、MHA的组成 4、MHA的工作原理 5、故障切换备选主库的算法 二、部署MHA高可用架构 1、环境部署 2、部署主从同步 2.1 修改主配置文件并创建软链接 2.1.1 master 修改主配置文件并创建软连接 2.1.2 slave1 修改主…

【JavaSE】类和对象详解(下)

前言 面向对象程序的三大特性:封装、继承、多态~ 书接上回 类和对象(上)~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 封装 private public 快速生成可访问封装的方法 包…

ubuntu16.04 不支持 gcc-11,g++11

总结 ubuntu16.04 不支持 gcc-11,需要升级 18.04 或更高的版本。 背景 最近需要在我的 ubuntu16.04 电脑上安装 gcc-11,g-11,使用更高的版本来编译代码。根据网上查到的方式是添加以下的源并进行安装 sudo add-apt-repository ppa:ubuntu…

数据库之MyBatisPlus详解

MyBatisPlus MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官网地址:https://baomidou.com/ 一、入门案…

微信公众号迁移公证书在哪?

公众号迁移有什么作用?只能变更主体吗?很多小伙伴想做公众号迁移,但是不知道公众号迁移有什么作用,今天跟大家具体讲解一下。首先公众号迁移最主要的就是修改公众号的主体了,比如我们公众号原来是A公司的,现…

Ruoyi-Cloud-Plus_使用Docker部署分布式微服务系统_环境准备_001---SpringCloud工作笔记200

1.首先安装docker: 如果以前安装过首先执行: yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 去卸载docker 2.安装dokcer需要的工具包…

linux下minio部署和nginx配置

1 下载minio wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio #启动minio,文件数据存放在/data目录 ./minio server /data2 部署minio 下载minio后赋予可执行权限就可以运行了,这里我整理了遇到的坑和解决问题的最终配置…

大模型面试准备(九):简单透彻理解MoE

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

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

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

第5篇:挖矿病毒(一)

0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一。病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升高,风扇噪声增大…

金融衍生品市场

金融衍生品市场 衍生金融品的作用衍生金融工具远期合约期货合约期权 衍生金融品的作用 套期保值(Hedging) 组合多头头寸(long position)与空头头寸(short position)例:股票与股指期货 投机 衍生金融工具 远期合约 定义:在将来…

C语言数组详解

一维数组 创建和初始化 数组就是一组相同元素的集合。 他的创建: char arr[10]; int arr1[5]; 数组创建中 [] 里不能是变量,但是在c99标准之后就可以了被称为变长数组,但是不常用,而且变长数组不能初始化。 初始化&#xff…

这两个比较经典的LVS问题怎么解?

今日景芯SoC VIP学员遇到的LVS问题,比较经典,大家先思考下。然后本文末尾分享下2.5GHz A72训练营的LVS解法: 问题1: 问题2: 修改后: 具体修改方案参见知识星球,接下来分享下2.5GHz A72项目的LV…

如何使用固定公网地址远程访问内网Axure RP生成的网站原型web页面

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…