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文件进行恢复(数据一致性更好)

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

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

相关文章

智能实训-wheeltec小车-抓取(源代码)

语言 :C 源代码&#xff1a; #include <ros/ros.h> #include <image_transport/image_transport.h> #include <cv_bridge/cv_bridge.h> #include <sensor_msgs/image_encodings.h> #include <sensor_msgs/JointState.h> #include <geometry…

leetcode17. 电话号码的字母组合

题目描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "…

产品需求文档怎么写?超详细的产品需求文档PRD模板来了!

产品需求文档怎么写&#xff1f;如何写一份简洁明了、外行人看了就能秒懂的产品需求文档呢&#xff1f;今天这篇文章&#xff0c;就来和大家分享如何编写一份高质量的产品需求文档 PRD&#xff01; 下图是来自 boardmix 模板社区的「产品需求文档」模板&#xff0c;它给出了一…

Verilog刷题笔记47

题目&#xff1a; From a 1000 Hz clock, derive a 1 Hz signal, called OneHertz, that could be used to drive an Enable signal for a set of hour/minute/second counters to create a digital wall clock. Since we want the clock to count once per second, the OneHer…

SpringBoot+Vue+Element-UI实现在线外卖系统

前言介绍 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的…

【计算机科学速成课】笔记三——操作系统

文章目录 18.操作系统问题引出——批处理设备驱动程序多任务处理虚拟内存内存保护Unix 18.操作系统 问题引出—— Computers in the 1940s and early 50s ran one program at a time. 1940,1950 年代的电脑&#xff0c;每次只能运行一个程序 A programmer would write one at…

北京大学-知存科技存算一体联合实验室揭牌,开启知存科技产学研融合战略新升级

5月5日&#xff0c;“北京大学-知存科技存算一体技术联合实验室”在北京大学微纳电子大厦正式揭牌&#xff0c;北京大学集成电路学院院长蔡一茂、北京大学集成电路学院副院长鲁文高及学院相关负责人、知存科技创始人兼CEO王绍迪、知存科技首席科学家郭昕婕博士及企业研发相关负…

vivado Versal ACAP 可编程器件镜像 (PDI) 设置

Versal ACAP 可编程器件镜像 (PDI) 设置 下表所示 Versal ACAP 器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。 注释 &#xff1a; 在 Versal ACAP 架构上 &#xff0c; 原先支持将可编程器…

408算法题专项-2009年

题目&#xff1a; 分析&#xff1a;09年的链表题目比较简单&#xff0c;直接构建链表&#xff0c;然后根据不同思路模拟即可。 思路一&#xff1a;循环遍历 思考&#xff1a;最容易想到的思路&#xff0c;直接暴力循环。偷了一下懒&#xff0c;变量名称没用题目的&#xff0c;…

力扣每日一题105:从前序与中序序列构造二叉树

题目 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,1…

语音识别--kNN语音指令识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

硬盘惊魂!文件夹无法访问怎么办?

在数字时代&#xff0c;数据的重要性不言而喻。然而&#xff0c;有时我们会遇到一个令人头疼的问题——文件夹提示无法访问。当你急需某个文件夹中的文件时&#xff0c;却被告知无法打开&#xff0c;这种感受真是难以言表。今天&#xff0c;我们就来深入探讨这个问题&#xff0…

第六代移动通信介绍、无线网络类型、白皮书

关于6G 即第六代移动通信的介绍&#xff0c; 图解通信原理与案例分析-30&#xff1a;6G-天地互联、陆海空一体、全空间覆盖的超宽带移动通信系统_6g原理-CSDN博客文章浏览阅读1.7w次&#xff0c;点赞34次&#xff0c;收藏165次。6G 即第六代移动通信&#xff0c;6G 将在5G 的基…

VTK —— 三、简单操作 - 示例3 - 将点投影到平面上(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功&#xff0c;若无VTK库则请先参考如下链接编译vtk源码&#xff1a; VTK —— 一、Windows10下编译VTK源码&#xff0c;并用Vs2017代码测试&#xff08;附编译流程、附编译好的库、vtk测试源码&#xff09; 教程描述 本…

Day 63:单调栈 LeedCode 84.柱状图中最大的矩形

84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 解释&a…

MySQL表的增删改查

在进行表操作之前,一定要use选中数据库 注释&#xff1a;在SQL中可以使用 --空格描述 来表示注释说明 CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母。 文章目录 数据库约束约束类型NOT NULL约束UNIQUE&#xff1a;唯一约束DEFAULT&…

【计算机科学速成课】笔记三

文章目录 17.集成电路真空管时代晶体管时代集成电路时代印刷电路板时代光刻时代 17.集成电路 Over the past six episodes, we delved into software, 过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程 from early programming efforts to modern software engineerin…

synchronized与volatile关键字

1.synchronized的特性 1.1互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如果也执行到 同一个对象 synchronized 就会阻塞等待. 进入 synchronized 修饰的代码块, 相当于 加锁 退出 synchronized 修饰的代码块, 相当于 解锁 syn…

游戏辅助 -- 实战找人物对象基址

本节课在线学习视频&#xff1a; https://pan.quark.cn/s/3e83f4568031 一、打开CE工具&#xff0c;加载游戏进程 二、搜索人物血量144&#xff0c;选择首次扫描 三、进入游戏&#xff0c;让人物血量发生变化&#xff0c;搜索减少的数值 四、发现绿色的数值&#xff0c;一般绿…

Jsoncpp介绍

1.简介 Jsoncpp 是一个 C 库&#xff0c;用于解析和生成 JSON 数据。它提供了一个易于使用的 DOM&#xff08;Document Object Model&#xff09;风格的 API&#xff0c;允许开发者以树形结构的方式操作 JSON 数据。 Jsoncpp 是一个C库&#xff0c;允许操作JSON值&#xff0c;…