Redis-持久化操作-RDB

Redis持久化


由于Redis的数据都存放在内存中,如果没有配置持久化,Redis重启后数据就全丢失了,于是需要开启 Redis的持久化功能,将数据保存到磁盘上,当Redis重启后,可以从磁盘中恢复数据。

Redis提供了两个不同形式的持久化方式:

  • RDB(Redis DataBase)
  • AOF(Append Only File)

持久化操作-RDB

RDB是什么?

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

备份过程

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程 都结束了,再用这个临时文件替换上次持久化好的文件。

整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢 复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后 一次持久化后的数据可能丢失。

在这里插入图片描述

dump.rdb文件

  1. RDB保存的文件,在redis.conf中配置文件名称,默认为dump.rdb。

    在这里插入图片描述

  2. rdb文件的保存位置,也可以修改。默认在Redis启动时命令行所在的目录下。

    在这里插入图片描述

    redis.conf中配置文件路径

    在这里插入图片描述

如何触发快照?

配置文件中默认的快照配置

在这里插入图片描述

  1. 快照默认配置

    save 3600 1:表示3600秒内(一小时)如果至少有1个key的值变化,则保存
    300 100:表示300秒内(五分钟)如果至少有100个 key 的值变化,则保存
    60 10000:表示60秒内如果至少有 10000个key的值变化,则保存
    

    可以自己配置新的保存规则。

  2. 例:给redis.conf添加新的快照策略,30秒内如果有5次key的变化,则触发快照。配置修改后,需 要重启Redis服务。

    在这里插入图片描述

    dump.rdb默认大小是89字节,里面会有一些基本信息。

    在这里插入图片描述

    30秒内设置5个以上的值。

    set k1 v1
    set k2 v2
    set k3 v3
    set k4 v4
    set k5 v5
    set k6 v6
    set k7 v7
    

    在这里插入图片描述

    dump.rdb大小已经改变。

    在这里插入图片描述

flushall

执行flushall命令,也会触发rdb规则。

save与bgsave

手动触发Redis进行RDB持久化的命令有两种:

  1. save

    该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成 为止,不建议使用。

    save命令是同步命令,会占用Redis的主进程。若Redis数据非常多时,save命令会执行速度非常慢,阻塞所有客户端的请求
    
  2. bgsave (推荐)

    执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。 这两个命令是在Redis客户端中执行,并不是redis.conf中修改

    命令savebgsave
    IO类型同步异步
    阻塞是(阻塞发生在fock(),通常非常快)
    复杂度O(n)O(n)
    优点不会消耗额外的内存不阻塞客户端命令
    缺点阻塞客户端命令需要fock子进程,消耗内存
stop-writes-on-bgsave-error

默认值是yes。当Redis无法写入磁盘的话,直接关闭Redis的写操作。

在这里插入图片描述

rdbcompression

默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算 法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照 会比较大。

在这里插入图片描述

rdbchecksum

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

在这里插入图片描述

恢复数据

只需要将rdb文件放在Redis的启动目录,Redis启动时会自动加载dump.rdb并恢复数据

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

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

相关文章

什么是数据中心?关于数据中心的这些知识一定要知道

在数字化时代,数据已成为企业最宝贵的资产之一。数据中心,作为支撑海量数据存储、处理和分发的基础设施,其战略地位日益凸显。它们不仅是信息技术的心脏,更是推动现代商业决策、创新和运营的核心引擎。随着云计算、大数据、物联网…

AR系列路由器配置本地同一网段互通

A R 路由器是华为公司推出的企业级路由器产品系列,具有高可靠性、高性能和易管理等特点。AR 系列路由器提供的功能包括路由转发、安全接入、语音、视频、无线等多种业务,支持各种接入方式和协议,并且可以方便地进行扩展和升级。 实验拓扑图&…

为什么3d重制变换模型会变形?---模大狮模型网

3D建模和渲染过程中,设计师经常会遇到一个让人头疼的问题,那就是模型在进行重制变换后出现的意外变形。这种变形不仅影响了模型的外观和质量,也给设计工作带来了额外的麻烦。本文将深入探讨3D模型进行重制变换后出现变形的原因,帮…

15.JUC原子类

文章目录 JUC原子类1.JUC中的Atomic原子操作包1.1. 基本原子类(Basic Atomic Classes)1.2. 数组原子类(Array Atomic Classes)1.3. 引用原子类(Reference Atomic Classes)4. 字段更新原子类(Fie…

【LAMMPS学习】八、基础知识(6.5)PyLammps 教程

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

记录一次 vue2 前端项目整合过程

整合成功效果图 具体说明: 项目A是现在的vue2前端项目,项目B是一个开源的工作流前端,项目后端代码已经整合了,就不多提了。这里主要记录下前端整合的过程和思路。 1、开源工作流里面的功能,拷贝到自己对应的vue2项目里…

傻瓜化备份/恢复K8S集群Etcd数据

前言: 备份重要数据,简化重复操作,让一指禅、点点点也能完成运维任务。 脚本呈现界面如下: 1、查看Etcd版本 rootmaster:~# cat /etc/kubernetes/manifests/etcd.yaml | grep image: | awk {print $2} registry.aliyuncs.com/goo…

享元模式详解

享元模式 1 概述 定义: ​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存…

论文翻译及部分笔记:LANDMARC: Indoor Location Sensing Using Active RFID

LANDMARC: Indoor Location Sensing Using Active RFID 摘要 移动计算设备和嵌入式技术的日益融合引发了“上下文感知”应用的发展和部署,其中位置是最重要的上下文。在本文中,我们介绍了一种名为LANDMARC的定位感知原型系统,该系统使用射频识…

归档文件整理规则,一键按扩展名归类,轻松打造有序文档世界!

我们的电脑里充斥着各种各样的文件:图片、文档、视频、音频……它们如同一座座无序的小山,让人眼花缭乱,难以找到所需。你是否曾为了找一个文件而翻遍整个电脑?是否曾因为文件混乱而错失了重要信息?别担心,…

Spring AI开发前期开发指导(maven依赖下载问题解决)

文章目录 说明开发条件网络环境准备本地环境准备开发工具准备 特殊说明maven配置项目jar一致下载错误解决可行的版本搭配 说明 动力节点视频教程地址,本文章学习该教程,同时说明的maven配置问题导致的项目依赖下载失败的问题和其他问题的记录。 开发条…

网络安全快速入门(十一)vi/vim

11.1 了解vi 前面我i们已经在基础命令中大致了解了vi,本章我们针对vi来细讲一下,vi和vim 11.1.1 什么是vi/vim? vi和vim,都是一个模块化的文本编辑工具,换句话讲,通过vi下的一系列的命令,可以实…