当前位置: 首页 > news >正文

Redis(持久化)

文章目录

    • 1.RDB
        • 1.介绍
        • 2.RDB执行流程
        • 3.持久化配置
          • 1.Redis持久化的文件是dbfilename指定的文件
          • 2.配置基本介绍
            • 1.进入redis配置文件
            • 2.搜索dbfilename,此时的dump.rdb就是redis持久化的文件
            • 3.搜索dir,每次持久化文件,都会在启动redis的当前目录下生成,并且每次找的也是当前目录的dump.rdb文件进行恢复
          • 3.持久化配置
            • 1.修改dir的配置为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
            • 2.重启redis,使其生效
            • 3.进入root目录下,可以看到dump.rdb生成了
          • 4.默认快照配置
          • 5.手动进行持久化操作
            • 1.常用命令
            • 2.一般在命令行使用bgsave进行异步快照操作
            • 3.lastsave返回上一次保存的unix时间戳
          • 6.flushall
            • 1.介绍
          • 7.其余rdb配置
            • 1.save 如果要禁用持久化就设置为空串
            • 2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes
            • 3.rdbcompression 是否将快照进行压缩存储,默认yes
            • 4.是否开启数据校验,默认yes
            • 5.动态停止rdb(临时生效,重启就失效)
          • 8.rdb配置实例
            • 1.需求:如果Redis的key在30s内有五个key变化,就自动进行rdb备份
            • 2. 编辑配置文件,找到save设置,进行配置
            • 3.重启redis,使配置生效
            • 4.去/root/目录下查看目前的持久化文件的大小
            • 5.重新登陆redis命令行,在30s内设置至少五次key
            • 6.在30s后查看持久化文件,变成104了
        • 4.RDB备份和恢复
          • 1.备份使用cp指令即可
          • 2.恢复是在启动的时候读取配置文件中的dir的目录下的dump.rdb进行恢复
        • 5.RDB的优势和劣势
          • 1.优势
          • 2.劣势
    • 2.AOF
        • 1.基本介绍
          • 1.AOF是什么?
          • 2.AOF持久化的流程
        • 2.开启AOF配置
          • 1.开启方式
          • 2.开启AOF
            • 1.编辑配置文件找到appendonly,设置成yes
            • 2.重启redis,使配置生效,在/root/目录下生成了aof文件
            • 3.可以发现aof文件是空的,但是当RDB和AOF同时开启,默认读取的是aof文件,进行恢复,所以登录命令行,查看目前的库应该是空的
          • 3.AOF机制实例
            • 1.进入redis客户端,进行一些操作
            • 2.查看aof文件,可以看到记录了set和del指令,并没有记录get指令
          • 4.AOF恢复
            • 在开启了AOF的条件下,启动Redis时,会自动读取配置文件中配置的dir目录下的aof文件进行恢复
          • 5.AOF异常修复(数据可能丢失)
            • 1.首先关闭redis,退出客户端
            • 2.编辑aof文件,在最后添加一些字母
            • 3.重启redis,发现启动失败了
            • 4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用
            • 5.此时再重新启动redis,可以看到启动成功
            • 6.连接客户端,查看数据,由于之前是在文件后面加的内容,所以这次数据没有丢失
          • 6.AOF同步频率(从缓冲区同步到aof文件的频率,用默认的即可)
          • 7.Rewrite压缩
            • 1.基本介绍
            • 2.主动触发
            • 3.修改配置,自动触发
            • 4.关于配置自动触发的解析
          • 8.AOF的优势和劣势
            • 1.优势
            • 2.劣势
            • 3.如何选择?官方推荐都打开,不冲突,只是恢复的时候会使用aof文件进行恢复(数据一致性更好)

1.RDB

1.介绍

image-20240430090401500

2.RDB执行流程

image-20240430091140400

image-20240430091249176

3.持久化配置
1.Redis持久化的文件是dbfilename指定的文件

image-20240430091519058

2.配置基本介绍
1.进入redis配置文件
vim /etc/redis.conf
2.搜索dbfilename,此时的dump.rdb就是redis持久化的文件

image-20240430092122470

3.搜索dir,每次持久化文件,都会在启动redis的当前目录下生成,并且每次找的也是当前目录的dump.rdb文件进行恢复

image-20240430092155380

3.持久化配置
1.修改dir的配置为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复

image-20240430093253846

2.重启redis,使其生效

image-20240430093500646

3.进入root目录下,可以看到dump.rdb生成了

image-20240430093528969

4.默认快照配置
  • 如果没有打开注释,默认不会自动备份,只有在shutdown的时候才会备份

image-20240430093858223

image-20240430093945046

5.手动进行持久化操作
1.常用命令

image-20240430094634993

2.一般在命令行使用bgsave进行异步快照操作

image-20240430094814520

3.lastsave返回上一次保存的unix时间戳

image-20240430095146111

6.flushall
1.介绍

image-20240430095346715

7.其余rdb配置
1.save 如果要禁用持久化就设置为空串
2.stop-writes-on-bgsave-error 如果磁盘满了,就不再写入,推荐yes

image-20240430100214205

3.rdbcompression 是否将快照进行压缩存储,默认yes

image-20240430100336464

image-20240430100317343

4.是否开启数据校验,默认yes

image-20240430100627876

5.动态停止rdb(临时生效,重启就失效)

image-20240430112727294

8.rdb配置实例
1.需求:如果Redis的key在30s内有五个key变化,就自动进行rdb备份
2. 编辑配置文件,找到save设置,进行配置

image-20240430115114275

3.重启redis,使配置生效

image-20240430115331446

4.去/root/目录下查看目前的持久化文件的大小

image-20240430115521908

5.重新登陆redis命令行,在30s内设置至少五次key

image-20240430115627204

6.在30s后查看持久化文件,变成104了

image-20240430115702737

4.RDB备份和恢复
1.备份使用cp指令即可
2.恢复是在启动的时候读取配置文件中的dir的目录下的dump.rdb进行恢复
5.RDB的优势和劣势
1.优势

image-20240430121145732

2.劣势

image-20240430121250028

2.AOF

1.基本介绍
1.AOF是什么?

image-20240430121754067

2.AOF持久化的流程

image-20240430122347623

image-20240430122357912

2.开启AOF配置
1.开启方式

image-20240430122438143

2.开启AOF
1.编辑配置文件找到appendonly,设置成yes

image-20240430122849707

2.重启redis,使配置生效,在/root/目录下生成了aof文件
3.可以发现aof文件是空的,但是当RDB和AOF同时开启,默认读取的是aof文件,进行恢复,所以登录命令行,查看目前的库应该是空的

image-20240430123217580

3.AOF机制实例
1.进入redis客户端,进行一些操作

image-20240430134018331

2.查看aof文件,可以看到记录了set和del指令,并没有记录get指令

image-20240430134100465

4.AOF恢复
在开启了AOF的条件下,启动Redis时,会自动读取配置文件中配置的dir目录下的aof文件进行恢复
5.AOF异常修复(数据可能丢失)
1.首先关闭redis,退出客户端

image-20240430134810564

2.编辑aof文件,在最后添加一些字母

image-20240430135114227

3.重启redis,发现启动失败了

image-20240430135440578

4.执行在/usr/local/bin下的 redis-check-aof --fix 文件名 进行修复,由于/usr/local/bin是环境变量,就可以直接使用
redis-check-aof --fix /root/appendonly.aof 

image-20240430135849357

5.此时再重新启动redis,可以看到启动成功

image-20240430140019122

6.连接客户端,查看数据,由于之前是在文件后面加的内容,所以这次数据没有丢失

image-20240430140153787

6.AOF同步频率(从缓冲区同步到aof文件的频率,用默认的即可)

image-20240430140428985

7.Rewrite压缩
1.基本介绍

image-20240430141743469

2.主动触发

image-20240430141807013

3.修改配置,自动触发

image-20240430141834992

4.关于配置自动触发的解析
  • 第一个配置是自动触发的百分比,就是每次触发压缩,redis都会记录当前的文件大小,如果配置了100,就表示当文件大小是原来文件大小的(100 + 100) %也就是百分之二百时,自动触发压缩
  • 第二个配置是自动触发的最小内存,配置的64mb,指的就是,文件最小是64mb才能够自动触发压缩机制
8.AOF的优势和劣势
1.优势

image-20240430143036145

2.劣势

image-20240430143045919

3.如何选择?官方推荐都打开,不冲突,只是恢复的时候会使用aof文件进行恢复(数据一致性更好)

相关文章:

Redis(持久化)

文章目录 1.RDB1.介绍2.RDB执行流程3.持久化配置1.Redis持久化的文件是dbfilename指定的文件2.配置基本介绍1.进入redis配置文件2.搜索dbfilename,此时的dump.rdb就是redis持久化的文件3.搜索dir,每次持久化文件,都会在启动redis的当前目录下…...

基于Flask的岗位就业可视化系统(一)

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 前言 本项目综合了基本数据分析的流程,包括数据采集(爬虫)、数据清洗、数据存储、数据前后端可视化等 推荐…...

嵌入式学习68-C++(运算符重载和虚函数)

知识零碎: cin >> n 相当于scanf C系统提供的6种基本函数 …...

UVA1048/LA3561 Low Cost Air Travel

UVA1048/LA3561 Low Cost Air Travel 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2006年ICPC世界总决赛的A题 题意 很多航空公司都会出售一种联票,要求从头坐,上飞机时上缴机票,可以在中途任何一站下飞机。比如,假…...

学习和分析各种数据结构所要掌握的一个重要知识——CPU的缓存利用率(命中率)

什么是CPU缓存利用率(命中率),我们首先要把内存搞清楚。 硬盘是什么,内存是什么,高速缓存是什么,寄存器又是什么? 我们要储存数据就要运用到上面的东西。首先里面的硬盘是可以无电存储的&#…...

IOS自动化—将WDA打包ipa批量安装驱动

前言 CSDN: ios自动化-Xcode、WebDriverAgent环境部署 ios获取原生系统应用的包 如果Mac电脑没有配置好Xcode相关环境,可以参考以上文章。 必要条件 Mac电脑,OS版本在12.4及以上(低于这个版本无法安装Xcode14,装不了Xcode14就…...

SAP PP学习笔记12 - 评估MRP的运行结果

上一章讲了MRP的概念,参数,配置等内容。 SAP PP学习笔记11 - PP中的MRP相关概念,参数,配置-CSDN博客 本章来讲 MRP跑完之后呢,要怎么评估这个MRP的运行结果。 1,Stock/Requirements List and MRP List 在…...

AndroidStudio的Iguana版的使用

1.AndroidStudio介绍 Android Studio 是用于开发 Android 应用的官方集成开发环境 (IDE)。Android Studio 基于 IntelliJ IDEA 强大的代码编辑器和开发者工具,还提供更多可提高 Android 应用构建效率的功能,例如: 基于 Gradle 的灵活构建系统…...

通过方法引用获取属性名的底层逻辑是什么?

很多小伙伴可能都用过 MyBatis-Plus&#xff0c;这里边我们构造 where 条件的时候&#xff0c;可以直接通过方法引用的方式去指定属性名&#xff1a; LambdaQueryWrapper<Book> qw new LambdaQueryWrapper<>(); qw.eq(Book::getId, 2); List<Book> list bo…...

自学错误合集--项目打包报错,运行报错持续更新中

java后端自学错误总结 一.项目打包报错2.项目打包之后运行报错 二.项目运行报错 一.项目打包报错 javac: &#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ļ&#xfffd;: E:\xx\xx\xx\docer-xx\src\main\java\xx\xx\xx\xx\xx\xx.java &#xfffd;&#xff…...

KUKA机器人故障报警信息处理(一)

1、KSS00276 机器人参数不等于机器人类型 ①登录专家模式 ②示教器操作&#xff1a;【菜单】—【显示】—【变量】—【单个】 ③名称输入&#xff1a;$ROBTRAFO[] 新值&#xff1a;TRAFONAME[] ④点击【设定值】。 2、电池报警&#xff1a; ①“充电电池警告-发现老化的蓄电池…...

数仓开发:DIM层数据处理

一、了解DIM层 这个就是数仓开发的分层架构 我们现在是在DIM层&#xff0c;从ods表中数据进行加工处理&#xff0c;导入到dwd层&#xff0c;但是记住我们依然是在DIM层&#xff0c;而非是上面的ODS和DWD层。 二、处理维度表数据 ①先确认hive的配置 -- 开启动态分区方案 -- …...

echars设置渐变颜色的方法

在我们日常的开发中&#xff0c;难免会遇到有需求&#xff0c;需要使用echars设置渐变的图表&#xff0c;如果我们需要设置给图表设置渐变颜色的话&#xff0c;我们只需要在 series 配置项中 添加相应的属性配置项即可。 方式一&#xff1a;colorStops type&#xff1a;‘lin…...

SpringBoot3项目打包和运行

六、SpringBoot3项目打包和运行 6.1 添加打包插件 在Spring Boot项目中添加spring-boot-maven-plugin插件是为了支持将项目打包成可执行的可运行jar包。如果不添加spring-boot-maven-plugin插件配置&#xff0c;使用常规的java -jar命令来运行打包后的Spring Boot项目是无法找…...

Spring Cloud Gateway的部署

不要将 Spring Cloud Gateway 部署到 Tomcat 可以将Spring Cloud Gateway打成jar包&#xff0c;并通过jar包部署&#xff0c;步骤&#xff1a; 1. 修改构建配置 确保你的pom.xml文件中的打包方式为jar。 <packaging>jar</packaging> 2 打包项目 mvn clean pack…...

算法提高之树的最长路径

算法提高之树的最长路径 核心思想&#xff1a;树形dp 枚举路径的中间节点用f1[i] 表示i的子树到i的最长距离,f2[i]表示次长距离最终答案就是max(f1[i]f2[i]) #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N …...

git/gerrit使用遇到的问题

Push时出现的多个问题及其解决 branch【...】not found 这个错误通常出现在 Git 命令中指定的分支名称中包含特殊字符或者语法错误时。需要确保指定的分支名称是正确的&#xff0c;并且没有任何不支持的字符。 例如&#xff0c;如果分支名称是 feature/branch&#xff0c;应该…...

机器学习第二天(监督学习,无监督学习,强化学习,混合学习)

1.是什么 基于数据寻找规律从而建立关系&#xff0c;进行升级&#xff0c;如果是以前的固定算式那就是符号学习了 2.基本框架 3.监督学习和无监督式学习&#xff1a; 监督学习&#xff1a;根据正确结果进行数据的训练&#xff1b; 在监督式学习中&#xff0c;训练数据包括输…...

Rust 解决循环引用

导航 循环引用一、现象二、解决 循环引用 循环引用出现的一个场景就是你指向我&#xff0c;我指向你&#xff0c;导致程序崩溃 解决方式可以通过弱指针&#xff0c;而Rust中的弱指针就是Weak 在Rc中&#xff0c;可以实现&#xff0c;对一个变量&#xff0c;持有多个不可变引…...

ICC2:如何解决pin density过高引起的绕线问题

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 为了追求极致的利用率,综合往往会使用大量的AOI/OAI等多pin cell,然而后端实现过程中,工具为了解决绕线难题,又会通过降低local density的方法实现反向奔赴,即便如此,绕线后仍会残留不少问题,…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

C++中vector类型的介绍和使用

文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...

华为云Flexus+DeepSeek征文 | MaaS平台避坑指南:DeepSeek商用服务开通与成本控制

作者简介 我是摘星&#xff0c;一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型&#xff0c;将实际使用经验分享给大家&#xff0c;希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 作者简介 前言 一、技术架构概览 1.1 整体架构设…...