redis 持久化

news2024/9/23 22:26:31

文章目录

    • 一、什么是redis持久化
    • 二、两种持久化机制
    • 三、RDB(Redis DataBase) 内存快照
        • RDB 原理
        • RDB的触发方式
        • RDB的数据恢复:
        • RDB的优点
        • RDB的缺点
    • 四、AOF(Append Only File) 增量日志
        • AOF 原理
        • AOF的触发方式
        • AOF 重写机制
        • AOF的优点
        • AOF的缺点

一、什么是redis持久化

redis是一个内存数据库,一旦断电或服务器进程退出,内存数据库中的数据将全部丢失,所以需要redis持久化。redis持久化就是把数据保存在磁盘上,利用永久性存储介质将数据保存,在特定的时间将保存的数据进行恢复的工作机制

二、两种持久化机制

  • RDB(Redis DataBase) 内存快照: 存储数据结果,通过数据的方式进行持久化
  • AOF(Append Only File) 增量日志: 存储操作过程,通过操作命令的方式进行持久化

三、RDB(Redis DataBase) 内存快照

RDB 原理

在指定的时间间隔内将内存中的数据集写入磁盘,也就是快照(Snapshot),数据恢复是将快照文件直接读到内存中

图例:
在这里插入图片描述
解释: redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入一个到一个临时文件(dump.rdb)中,待持久化过程结束后,再用本次的临时文件替换上次持久化后的文件。fork函数的作用是复制一个与当前进程一样的进程,新进程的所有数据数值都和原进程一致,但是一个全新的进程,并作为原进程的子进程。

RDB的触发方式

1、手动触发:

执行savebgsave命令,手动触发快照,生成RDB文件


手动触发命令两种:

	save: 该命令会阻塞当前redis服务器,执行save命令期间,redis不能处理其他命令,直到RDB过程结束为止(会造成长时间阻塞,不建议使用)
	bgsave:该命令执行后,redis会在后台异步进行快照操作,快照同时还可以响应客户端的请求,阻塞只发生在fork阶段,基本上redis内部的所有RDB操作都是采用bgsave命令
	

2、自动触发:

1、redis.conf配置文件中达到save参数的条件,自动触发bgsave
在这里插入图片描述
2、主从复制时,从节点要从主节点进行全量复制时也会触发bgsave,生成快照发送到从节点
3、执行shutdown(关闭redis服务),会触发bgsave
4、执行flushall(生成一个空的临时文件dump.rdb)

RDB的数据恢复:

备份文件(dump.rdb)移动到redis路径下(可以配置文件的存放路径)启动服务即可,redis启动会将文件数据加载到内存,在此期间redis会处于阻塞状态,直到全部数据存入内存。

RDB的优点

  • 数据恢复快
  • 体积小
  • 数据备份使用子进程,对redis服务性能影响小

RDB的缺点

  • 在一定时间间隔进行备份,当redis意外宕机,将会丢失最后一次修改的数据,无法做到秒级持久化
  • fork进程时,会占用一定的内存空间
  • RDB文件是二进制的没有可读性

四、AOF(Append Only File) 增量日志

AOF 原理

将客户端的每一个写操作命令以日志的形式记录下来,追加到appendonly.aof的文件末尾,在redis服务器重启时,会加载aof文件中的所有命令,来达到数据恢复的目的

图例:
在这里插入图片描述

解释: 当有写命令请求时,会追加到AOF缓冲区内,AOF缓冲区根据AOF持久化策略[always,everysec,no]将操作同步到磁盘的AOF文件中,当AOF文件大小超过重写策略或手动重写时,会对AOF文件进行重写来压缩AOF文件容量,redis服务重启时,会重新加载AOF文件中的写操作来进行数据恢复

AOF的触发方式

1、手动触发

通过bgrewriteaof命令:重新AOF持久化生成aof文件(触发重写)

2、自动触发

默认情况,redis是没有开启AOF(默认使用RDB持久化),需要通过配置文件开启

在这里插入图片描述


AOF的持久化策略有三种:

	always: 把每个写命令立即同步到AOF文件,很慢但安全
	everysec: 每秒同步一次,默认配置
	no: redis不执行写入磁盘,交给OS系统处理,很快但不安全
	

AOF 重写机制

AOF持久化,会把每次写命令都追加到appendonly.aof文件中,当文件过大,redis的数据恢复时间就会变长,因此加入重写策略对aof文件进行重写,生成一个恢复当前数据的最少命令集。

AOF的优点

  • 数据安全性高,不易丢数据
  • AOF文件有序保存了所有写操作,可读性强

AOF的缺点

  • AOF方式生成文件体积大
  • 数据恢复速度比RDB慢

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

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

相关文章

JavaEE【Spring】:SpringBoot 统一功能处理

文章目录前言一、用户登录权限效验1、最初用户登录验证2、Spring AOP 用户统⼀登录验证的问题3、Spring 拦截器① 自定义拦截器② 将自定义拦截器加入到系统配置4、拦截器实现原理① 实现原理源码分析② 拦截器小结5、扩展:统⼀访问前缀添加二、统⼀异常处理1、使用…

系分 - (软件)需求工程

个人总结,仅供参考,欢迎加好友一起讨论 文章目录系分 - (软件)需求工程考点摘要需求工程需求开发(主线,目标)需求分类领域工程PIECES框架需求获取需求记录技术需求分析结构化分析方法 - SASA - 数据字典SA - 数据流图D…

浅谈Web缓存

Web缓存分为两类 http缓存浏览器缓存 1、缓存位置 Service WorkerMemory CacheDisk CachePush Cache 2、浏览器缓存分为三类 cookielocalStroragesessionStorage cookie的最大容量为4kb, localStorage, sessionStorage容量为5M localStorage可永久存储, 除非调用API删除或…

【Linux编译器-gcc/g++使用】

1. 背景知识1. 预处理()2. 编译()3. 汇编()4. 连接()有关具体详解可以参照这篇博客:程序环境与预处理2. gcc如何完成格式 gcc [选项] 要编译的文件 [选项] [目标文件]2.1预处理📙功能&#x1f4…

11_1、Java集合概述

一、Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容器,可以动…

【自学Java】Java语言数组赋值

Java语言数组赋值 Java数组赋值教程 在 Java 语言 中,给 数组 赋值,就相当于给每个位置上的对应的位置填充数据。 Java语言数组赋值详解 Java 中的数据赋值分为动态化赋值和静态化赋值两种赋值方式。动态化赋值指的是先定义数组,然后指定…

Unity github发布 和 gitignore文件的详细设置

你做了一个unity项目 想给他提到github上去 如果你是windows 他会不停提示你 warning: LF will be replaced by CRLF in ***** The file will have its original line endings in your working directory 提示这个是因为 windows和其他平台的换行符不一样导致的 git想给你改换行…

PDF转换成Word转换器,这个软件实在太好用了!

在办公中我们会发现,我们每天需要处理的文件实在是太多了。大部分时间里我们都在跟各种各样的文件打交道,有部分文件内容很接近,甚至只是转换了输出格式而已,其具体内容并没有发生改动。那当我们想要直接使用它的另一种格式的时候…

ArcGIS三维制作步骤发布时间:

ArcGIS三维制作步骤发布时间:2018-01-17 版权:同步视频教程(一):http://www.bigemap.com/video/play2018022687.html(二):http://www.bigemap.com/video/play2018022686.html(三&…

电脑死机怎么办?超级简单的方法

当我们的电脑运行多个软件的时候,就会很容易发生死机。如果是台式电脑,我们可以通过按重启按钮,或者是通过直接拔电源来解决死机的问题。 如果是笔记本电脑,我们怎么按鼠标或者电脑的键盘,它都没有反应。电脑死机怎么…

Ubuntu 20.04源码编译安装OpenCV 4.7.0

目录 前言 1--下载OpenCV 4.7.0 2--编译安装OpenCV 4.7.0 3--测试 3-1--查看安装的版本 3-2--基于VSCode和CMake测试项目 4--报错解决(重点!) 4-1--OpenCV与FFmpeg不兼容 4-2--LIBTIFF报错 4-3--系统与Anaconda的库lib冲突 4-4--测…

MATLAB-罗盘图绘制

compass 函数用于绘制罗盘图,利用直角坐标系,在圆形栅格上绘制图形,整个形状类似一个“罗盘”,具体使用格式如下。1 ) compass( x , y):函数绘制一个由原点出发、由(x ,y)组成的向量箭头图形。2 ) compass( z):等价于compass( rea…

6步速通:修复损坏的word文件

前两天,老师找到我,想让我帮忙修复一个打不开的docx文档。症状大概是这样: 打开文件的时候花了较长时间,并且显示了乱码,并且老师使用WPS自带的文档修复功能也无法修复。 遇到这个情况,到底怎么办呢&#…

【填坑向】我可能也就是踩了dockrfile部署jar包(需读取resource目录下的文件)全部的坑吧。。。

FileNotFoundException。。没错、这篇还是从读取的文件找不到的问题开始,今天来个终极版( ̄∇ ̄)/一开始我把要读取的文件放在了项目根路径,package就没把它打进去,显然是找不到的,于是我把这个JSON文件移到了…

数据智能时代的营销新玩法RTA,你了解吗?|极客星球

近日,由国内知名产品经理社区PMTalk和MobTech联合举办的“从0到1深入产品运营方法论”沙龙活动圆满落幕,MobTech袤博科技开发者平台副总裁陆俊超在会上分享了RTA产品如何全方位提升用户增长效能。 RTA应运而生 在流量红利日益消退的环境下,…

中台KPI怎么设计?

在中台系统建设完毕之后,中台战略在一家企业中的落地工作就算完成了。 此时,我们必须有准确的指标来反映该战略的实际效果,因此就需要对中台战略在企业运作中的效益进行持续化的监测与评估。 行动点: (1&#xff09…

app嵌入新功能,一键接入(内含低代码平台)

在app的开发运营中,有时会需要跟随着用户的使用习惯来进行业务上的更新迭代,比如说新增或删减部分功能,或是调整应用功能布局,优化组件分区,以达到更简洁的效果。那么对应的会有低代码平台提供一些通用组件&#xff0c…

机器学习--决策树、线性模型、随机梯度下降

目录 一、决策树 二、线性模型 三、随机梯度下降 一、决策树 决策树(decision tree):是一种基本的分类与回归方法,此处主要讨论分类的决策树。 在分类问题中,表示基于特征对实例进行分类的过程,可以认为…

带你玩转指针——指针进阶(一)

指针的概念:指针就是变量,用来存放地址指针的大小是固定的4/8个字节(32位平台/64位平台)指针也是有类型的,指针类型决定了-步长,指针解引用时的权限字符指针在前面的学习我们知道了字符指针的初阶应用假如是…

xxljob 调度中心项目 调度一个方法到我们自己的项目,他是咋执行的

目录 1 需求2 实现1 需求 xxljob 调度中心项目 调度一个方法到我们自己的项目,他是咋执行的 2 实现 我们的项目首先是netty 服务器接收到,然后转发到run方法里面 核心就是下面的这个map对象 // 任务启动之后,时间一到就 创建一个 JobThread ,就放到这个priva…