Redis 持久化-RDB

RDB(Redis DataBase),在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失

在这里插入图片描述

  • Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。
  • 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux中引入了“写时复制技术
  • 一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。

在这里插入图片描述

配置

save

在这里插入图片描述

写操作次数,格式:save 秒钟

RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件,默认是1分钟内改了1万次,或5分钟内改了10次,或15分钟内改了1次。

禁用,不设置save指令,或者给save传入空字符串。

stop-writes-on-bgsave-error

在这里插入图片描述

当Redis无法写入磁盘的话,直接关掉Redis的写操作。推荐yes

rdbcompression 压缩文件

在这里插入图片描述

对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。

如果不想消耗CPU来进行压缩的话,可以设置为关闭此功能。推荐yes

rdbchecksum 检查完整性

在这里插入图片描述

在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。推荐yes

dbfilename 保存的文件名

在这里插入图片描述

配置文件名称,默认为dump.rdb

dir 保存路径在这里插入图片描述

rdb文件的保存路径,也可以修改,默认为Redis启动时命令行所在的目录下

命令

save 手动保存

手动保存,save时只管保存,其它不管,全部阻塞。不建议使用。

bgsave 异步保存

Redis会在后台异步进行快照操作, 快照同时还可以响应客户端请求。

lastsave 最后保存时间

可以通过lastsave命令获取最后一次成功执行快照的时间。

flushall

执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义。

rdb备份

备份:

通过 config get dir 查询rdb文件的目录,将 *.rdb 的文件拷贝到别的地方:

在这里插入图片描述

恢复:

  1. 关闭Redis
  2. 先把备份的文件拷贝到工作目录下 cp dump2.rdb dump.rdb
  3. 启动Redis,备份数据会直接加载

优势

  • 适合大规模的数据恢复
  • 对数据完整性和一致性要求不高更适合使用
  • 节省磁盘空间
  • 恢复速度快

在这里插入图片描述

劣势

  • Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑。
  • 虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能。
  • 在备份周期在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改。

动态停止RDB

redis-cli config set save ""

save后给空值,表示禁用保存策略

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

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

相关文章

用网格大师网络重划分时,坐标原点按照XML文件原点填写,导出的瓦块文件命名不对,坐标原点该怎么填写

瓦块名称和原来不一致的原因是瓦块原点这里设置的不对,要和重建设置的瓦块原点保持一致。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一,重叠区域处理问题的工具“百宝箱”,集格式转换、坐标转换、轻量化、瓦片重划分…

ModStartBlog v9.1.0 桌面快捷应用,图片上传前端压缩

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …

跨境电商流通无阻:API接口在简化全球电商流程中的关键角色

在全球化的经济中,跨境电商已成为许多电商平台的重要增长点。然而,跨国交易涉及复杂的流程和合规性要求,这些都可能成为商家扩张全球市场的障碍。API(应用程序编程接口)在这里扮演了关键角色,它简化了全球电…

淘宝商品销量数据接口,淘宝API接口

淘宝商品销量数据接口是淘宝开放平台提供的一种API接口,通过该接口,商家可以获取到淘宝平台上的商品销量数据。 淘宝商品销量数据接口可以用于获取特定商品的销量数据、特定店铺的销量数据、特定类目的销量数据等。商家可以根据自己的需求来调用该接口&…

控制学习_正弦波无刷直流力矩电机建模、控制带宽讨论与选择

无刷电机通过电子换向器实现定子的磁场旋转,去电刷后使用寿命大幅提升,是现在更流行的选择。三相无刷电机则是无刷电机中比较流行的一款。三相无刷电机的驱动方式有多种,最简单的被称为梯形波驱动、方波驱动或正弦波驱动。而正弦波驱动技术可…

前端路由跳转bug

路由后面拼接了id的千万不能取相近的名字,浏览器分辩不出,只会匹配前面的路径 浏览器自动跳转到上面的路径页面,即使在菜单管理里面配置了正确的路由 跳转了无数次,页面始终不对,检查了路由配置,没有任何问…

java枚举与模拟方法

枚举 枚举的定义 枚举算法(穷举算法),这种算法就是在解决实际问题的时候去使用所有的方式去解决这个问题,会通过推理去考虑事件发生的每一种可能性,最后推导出结果 优点 简单粗暴,他暴力的枚举所有可能&…

3.14号arm

1. 计算机基础理论 1.1 计算机的组成 输入设备:将数据转换成计算机可以识别,存储,处理的形式,发送到计算机中 输出设备:将计算机对程序和数据的运算结果输送到外部的设备 存储器:用于将数据保存的模块。 …

【火猫TV】欧联:8强无弱队,意甲英超球队扎堆,利物浦和药厂优势很大!

2023-2024欧联杯八强正式出炉,马赛、本菲卡、勒沃库森、利物浦、西汉姆联、罗马、亚特兰大和AC米兰成功拿到了晋级名额,于是球迷们即将看到近20年竞争最激烈的欧联杯八强对决。虽然这些队伍实力有强有弱,但是能够拼到现在的球队没有弱旅&…

软考高级:软件工程集成测试的策略概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

面向对象基础(类、对象、封装、继承、多态)

面向对象基础(类、对象、封装、继承、多态) 文章目录 面向对象基础(类、对象、封装、继承、多态)前言一、认识类和对象二、理解封装三、掌握继承四、初探多态总结 前言 Java作为一种广泛应用的编程语言,其面向对象编程…

1335:【例2-4】连通块

【算法分析】 设数组vis,vis[i][j]表示(i,j)位置已经访问过。遍历地图中的每个位置,尝试从每个位置开始进行搜索。如果该位置不是0且没有访问过,那么访问该位置,并尝试从其上下左右四个位置开始搜索。在看一个新的位置时&#xff…

mysql笔记:20. 什么是数据库六大范式

文章目录 简介什么是范式最常用的范式 第一范式 - 1NF第二范式 - 2NF第三范式 - 3NF第四范式 - 4NF第五范式 - 5NF巴斯-科德范式 - BCNF总结 简介 什么是范式 范式(Normal Form,简称NF)是数据库设计时遵循的一种规范,不同的规范…

大模型的实践应用19-基于pytorch框架下LayoutLM模型的搭建以及原理介绍

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用19-基于pytorch框架下LayoutLM模型的搭建以及原理介绍。LayoutLM是一个基于 Transformer 的预训练模型,它专门为处理布局丰富的文档信息而设计,例如扫描的文档、PDF 文件等。这个模型由微软亚洲研究院的研究团队开发,…

医疗设备控费系统防止私收、漏收、人情费

加19339904493(康) 医院完成信息化建设,不仅是一次技术性人深过信息化技术,医院能够更好地管理病患信息,提高诊断的准确性和效率,同时优化医疗资源的配置,降低医疗成本。在信息化的推动下&#…

docker命令查询笔记

目录 loginsearchpushpullimagesrmitaghistorysaveloadrunstartrestartstopkillrmpauseunpausecreateexecpsinspectstatstoprenameattachupdatelogswaitportexportimport login login:登录到远程仓库 登录到远程仓库后可可以拉取仓库的镜像了 docker login [OPTIO…

Git概述及安装步骤

一、Git简介 Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CV…

Linux下的多线程编程:原理、工具及应用(1)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:Flower of Life—陽花 0:34━━━━━━️💟──────── 4:46 🔄 ◀️ ⏸ ▶️ ☰ …

文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌组织学分级

Title 题目 Improved breast cancer histological grading using deep learning 使用深度学习改善乳腺癌组织学分级 01 文献速递介绍 乳腺癌组织学分级是乳腺癌中一个确立的临床变量,它包括来自三个方面的信息,即小管形成程度、核多态性和有丝分裂计…

springboot2.7使用redis的redission组件实现分布式锁

添加pom.xml引用&#xff1a; <!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--redisson--><dependency><groupId…