【Redis7】Redis持久化机制之RDB

文章目录

  • 1.RDB简介
  • 2.RDB配置触发设置
  • 3.RDB的优缺点
  • 4.如何检查修复RDB文件
  • 5.如何禁用RDB
  • 6.RDB参数优化
  • 7.总结

1.RDB简介

Redis持久化机制中的RDB(Redis Database)是一种将Redis在某个时间点的数据以快照形式保存到磁盘上的方法。

原理:RDB通过创建一个包含Redis数据库所有键值对的快照文件(通常以.rdb作为文件后缀)来实现持久化。这个过程将内存中的数据以二进制格式转储到磁盘上,形成一个紧凑的文件,便于备份和迁移。

三种触发方式配置触发,手动触发和后台触发

  • 手动触发:通过执行SAVE命令可以立即执行一次快照生成,但需要注意,该命令会阻塞Redis服务器,直到RDB文件创建完毕,因此在生产环境中不推荐直接使用
  • 后台触发:使用BGSAVE命令可以在后台异步执行快照生成,不会阻塞服务器处理客户端请求。
  • 配置触发:Redis服务器可以根据配置文件中的策略自动执行快照,如设置save指令来定义在一定时间内发生指定数量的写操作后自动执行BGSAVE。

2.RDB配置触发设置

配置触发:Redis服务器可以根据配置文件中的策略自动执行快照,如设置save指令来定义在一定时间内发生指定数量的写操作后自动执行BGSAVE。

RDB的配置通常在Redis的配置文件redis.conf中进行,包括RDB文件的保存路径、自动保存的规则等。

Redis6.2之前,RDB的配置如下:

image-20240518215807256

在 Redis.conf 配置文件中的 SNAPSHOTTING 下配置 save 参数,来触发 Redis 的 RDB 持久化条件,比如“save m n”:表示 m 秒内数据集存在 n次修改时,自动触发 bgsave

  • save 900 1:每隔 900s(15min),如果有超过 1 个 key 发生了变化,就写一份新的 RDB 文件
  • save 300 10:每隔 300s(5min),如果有超过 10 个 key 发生了变化,就写一份新的 RDB 文件
  • save 60 10000:每隔 60s(1min),如果有超过 10000 个 key 发生了变化,就写一份新的 RDB 文件

以下是Redis7中对RDB的配置内容:

image-20240518215927145

  • save 3600 1:每隔 3600s(60min),如果有超过 1 个 key 发生了变化,就写一份新的 RDB 文件
  • save 300 100:每隔 300s(5min),如果有超过 100 个 key 发生了变化,就写一份新的 RDB 文件
  • save 60 10000:每隔 60s(1min),如果有超过 10000 个 key 发生了变化,就写一份新的 RDB 文件

接下来通过修改配置文件,才修改自动保存规则,步骤如下:

1.修改自动保存规则,10秒内2个key发生变化
在这里插入图片描述

2.创建rdb文件存放的文件夹
在这里插入图片描述

3.修改redis配置文件, 505行左右
在这里插入图片描述

4.修改rdb文件的名字,默认是dump.rdb
在这里插入图片描述

我这里修改成了dump+端口号的形式,也可以不修改
在这里插入图片描述

改完配置文件要重启redis服务

5.连接redis,进行测试

使用命令config get dir,测试配置是否生效

127.0.0.1:6379> config get dir
1) "dir"
2) "/redis-config/rdbfiles"
127.0.0.1:6379> 

这里会显示修改rdb文件存放的文件夹,我这里是没问题的

只需要在redis中让key10秒内修改两次即可,修改完成之后查看文件夹,可以看到多了一个.rdb文件
在这里插入图片描述

示例:

修改原本生成的.rdb文件名称
在这里插入图片描述

清空所有的key
在这里插入图片描述
可以看到又生成了一个.rdb文件
在这里插入图片描述

  • flushdb这种命令也会生成.rdb文件,但是这个文件毫无意义

使用原来的.rdb文件,观察是否能恢复数据

首先先将原来的.rdb文件删除.然后重启虚拟机,重启虚拟机之后,会再生成一个.rdb文件 在将这个.rdb文件删除,将原来有数据的.rdb文件名改回去
在这里插入图片描述
重连redis服务,可以看到数据恢复了
在这里插入图片描述

3.RDB的优缺点

  • 优点:RDB文件紧凑,恢复速度比AOF快;适合做灾难恢复;对数据完整性要求不高的场景下非常有用。
  • 缺点
    • 数据恢复点取决于最后一次快照,如果服务器故障发生在两次快照之间(也就是一次快照之后,又修改了数据,但是还没触发快照),这段时间的数据会丢失;频繁执行快照可能会影响性能。
    • 内存数据的全量同步,如果数据量太大会导致I/0严重影响服务器性能
    • RDB依赖于主进程的fork,在更大的数据集中,这可能会导致服务请求的瞬间延迟fork的时候内存中的数据被克隆了一份,大致2倍的膨胀性,需要考虑

4.如何检查修复RDB文件

RDB在备份的时候,是有可能出现文件破损的.例如:RDB在进行文件写入的时候,写了一半,服务器突然宕机了,那么这条数据就有问题,从而到底整个文件都读不出来.

那么如何检查修复RDB文件呢?

1.其实在/usr/local/bin/目录下有一个redis-check-rdb
在这里插入图片描述

2.因此在任何地方使用redis-check-rdb 命令即可完成检查修复
在这里插入图片描述

5.如何禁用RDB

方法有两种:

  1. 动态所有停止RDB保存规则的方法:redis-cli config set save ""
  2. 修改配置文件,禁用快照
    在这里插入图片描述

6.RDB参数优化

1.stop-writes-on-bgsave-error:控制当Redis在执行后台保存(background save,简称bgsave)操作生成RDB快照文件时的行为。

默认yes.意思是那么当Redis在创建RDB快照过程中遇到错误(例如磁盘空间不足、权限问题等),Redis将停止接受任何可能修改数据集的命令,以防止数据不一致的情况发生。

如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制这种不一致,那么在快照写入失败时也能确保redis继续接受新的写请求
在这里插入图片描述

2.rdbcompression:用于控制Redis在生成RDB(Redis Database)快照文件时是否对数据进行压缩。

默认是yes,意思是Redis会在保存数据到RDB文件之前对其进行压缩。这样做的主要目的是减少RDB文件的体积,从而节省存储空间并可能加快备份和恢复过程中的传输速度。

压缩过程通常使用LZF算法,这是一种相对快速且高效的压缩算法,能够在压缩数据大小与CPU消耗之间取得一个平衡。尽管压缩会增加一定的CPU使用率,但对于大多数场景来说,这一开销相对于节约的存储空间和提高的I/O效率来说是可接受的。
在这里插入图片描述

3.rdbchecksum:用于控制Redis在载入RDB(Redis Database)快照文件时是否进行数据校验。

默认是yes,意思是Redis在从RDB文件恢复数据到内存之前,会计算快照文件内的数据校验和(checksum),然后与RDB文件末尾存储的校验和进行对比,以确保数据的完整性。
在这里插入图片描述

4.rdb-del-sync-files:控制着在主从复制(replication)场景下,从节点(slave)对于用于同步的RDB文件的处理方式。

默认是no,意思是即使从节点没有开启任何持久化(既没有启用RDB持久化也没有启用AOF持久化),在主从全量同步过程中使用的RDB文件也不会被自动删除。
在这里插入图片描述

7.总结

  1. RDB是一种将Redis在某个时间点的数据以快照形式保存到磁盘上的方法,主要是依靠rdb文件。

  2. 触发RDB情况: 达到配置的频率和时间,save, bgsave, shutdown , flushall/flushdb

    • save不建议使用
    • flushall/flushdb:产生的rdb文件没有意义
  3. 使用redis-check-rdb 命令即可完成检查修复rdb文件

  4. 禁用RDB:

    • 使用命令redis-cli config set save ""
    • 修改配置文件

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

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

相关文章

Node.js版本管理与npm镜像源管理

一、nvm —— node的版本管理工具 1.安装 nvm Windows 使用 nvm-windows点击跳转下载网站。 按照图示操作步骤下一步即可,对于下载位置推荐不要C盘任意即可 2.查看可用的 Node.js 版本: nvm list available #显示所有可以下载的版本3.安装特定的…

自动化证书管理|如何通过可管理的ACME为“90天SSL证书”做好准备?

SSL证书在保护组织的Web通信安全方面发挥着至关重要的作用。最近的趋势表明,在增强安全性诉求的推动下,SSL证书有效期逐渐缩短。这一变化需要组织耗费更多的时间和资源来进行证书更新工作,为了降低潜在风险并简化流程,自动化证书管…

windows、mac、linux中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换

文章目录 在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是…

python查找内容在文件中的第几行(利用了滑动窗口)

def find_multiline_content(file_path, multiline_content):with open(file_path, r) as file:# 文件内容file_lines file.readlines()# 待检测内容multiline_lines multiline_content.strip().split(\n)# 待检测内容总行数num_multiline_lines len(multiline_lines)matchi…

安装测缝计安装事项详解

在建筑和工程领域,测量缝隙和裂缝的准确性对于工程质量和安全性至关重要。测缝计作为一种专业的测量工具,能够帮助工程师和施工人员准确测量和监测建筑结构的缝隙情况,进而采取合适的修复和加固措施,保证建筑物的稳定性和安全性。…

PCIe协议之-Flow Control基础

✨前言: Flow Control即流量控制,这一概念起源于网络通信中。PCIe总线采用Flow Control的目的是,保证发送端的PCIe设备永远不会发送接收端的PCIe设备不能接收的TLP(事务层包)。也就是说,发送端在发送前可以…

Flat Ads获广东电视台报道!CEO林啸:助力更多企业实现业务全球化增长

近日,在广州举行的第四届全球产品与增长展会(PAGC2024)上,Flat Ads凭借其卓越的一站式全球化营销和创新的变现方案大放异彩,不仅吸引了众多业界目光,同时也在展会上斩获了备受瞩目的“金帆奖”,展现了其在全球化营销推广领域的卓越实力和专业服务。 在大会现场,Flat Ads的CEO林…

XMR交易所对接方案

交易所对接 XMR 充币 用户充币地址生成 使用 subaddress 即可 充币数据监测 monero-wallet-rpc 的API文档: https://web.getmonero.org/resources/developer-guides/wallet-rpc.html 步骤1 : 使用 monero-wallet-cli 的以下选项生成 incoming-only钱包: --generate-from-v…

# 全面解剖 消息中间件 RocketMQ-(2)

全面解剖 消息中间件 RocketMQ-(2) 一、RocketMQ – RocketMQ 各角色介绍 1、RocketMQ 各角色介绍 Producer : 消息的发送者; 举例:发信者。Consumer : 消息接收者; 举例:收信者。Broker : 暂存和传输消息; 举例:邮局。NameServer : 管理 Broker; 举例…

css动画之hamburgers

动效1 代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><div><label class"hamburger"><input type"checkbox"><…

BGP选路规则实验

实验拓扑及要求如下 注意&#xff1a; 在完成要求时&#xff0c;默认区域内IGP搭建完成&#xff0c;IBGP和EBGP的对等体关系建立完成 结果演示如下 IBGP内部搭建&#xff1a;使用OSPF IBGP与EBGP对等体建立 要求一&#xff1a;PreVal策略 PV属性默认值为0&#xff0c;规则是…

2024年ai知识库:特点、应用与搭建

随着科技的进步和企业的需要&#xff0c;ai知识库逐渐走进大众的视野并深受企业的青睐&#xff0c;掀起了搭建ai知识库的热潮。LookLook同学就来简单介绍一下关于ai知识库的特点、应用与发展趋势&#xff0c;带你了解2024年的ai知识库。 一、ai知识库的定义与特点 ai知识库是结…

CentOS7 部署单机版 elasticsearch

一、环境准备 1、准备一台系统为CentOS7的服务器 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 2、创建新用户&#xff0c;用于elasticsearch服务 # elastic不允许使用root账号启动服务 [rootlocalhost ~]# useradd elastic [rootlo…

SHA1获取

这里写目录标题 JDK获取uniapp开发Dcould获取 JDK获取 一、下载jdk 链接: http://www.oracle.com/ 二、安装直接下一步下一步 三、配置环境变量 先新增变量JAVA_HOME变量值为C:\devUtils\jdk (jdk安装路径位置)再配置Path(%JAVA_HOME%\bin) 四、创建SHA1安全证书 win r输入cmd…

【运维心得】双WAN配置的一个误区

目录 双WAN配置及优势 实际案例 解决之道 最后总结 双WAN配置及优势 什么是双WAN配置&#xff0c;这里就不多赘述&#xff0c;简单的说&#xff0c;首先你要有一台支持双WAN口的路由器&#xff0c;目前大多数企业级路由器都具备了这个功能。甚至有些家用路由器也有此类功能…

搭建淘宝扭蛋机小程序:技术选型与最佳实践

随着移动互联网的快速发展&#xff0c;小程序作为一种轻量级应用&#xff0c;以其无需安装、即用即走的特点&#xff0c;受到了广大用户的喜爱。在电商领域&#xff0c;淘宝作为国内最大的电商平台之一&#xff0c;也积极拥抱小程序技术&#xff0c;为用户提供更加便捷、个性化…

2024 电工杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024电工杯数学建模竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解…

一文说透组织中的利润中心建设

当前&#xff0c;规模型企业越来越重视利润中心建设&#xff0c;华为的实践表明&#xff0c;建好了利润中心&#xff0c;利润自然好&#xff0c;组织也会上台阶。很多企业利润上不去&#xff0c;就是没有搞好利润中心这个火车头。然而&#xff0c;很多人误以为利润中心只是财务…

TCP—三次握手和四次挥手

目录 一、三次握手和四次挥手的目的 二、TCP可靠的方面 三、什么是三次握手 四、第三次握手的目的 五、什么是四次挥手 六、超时时间的目的 七、SYN包、ACK包、FIN包 八、解决丢包和乱序 九、参考资料 一、三次握手和四次挥手的目的 TCP三次握手的目的主要是为了确保两…

基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)

基于机器学习模型预测信用卡潜在用户&#xff08;XGBoost、LightGBM和Random Forest&#xff09; 随着数据科学和机器学习的发展&#xff0c;越来越多的企业开始利用这些技术来提高运营效率。在这篇博客中&#xff0c;我将分享如何利用机器学习模型来预测信用卡的潜在客户。此…