Redis持久化——RDB和AOF

news2024/11/24 22:27:06

Redis数据库是内存数据库,一旦出现服务宕机,那么内存中的数据就容易丢失。所以需要进行redis的持久化动作。
Redis持久化是指将Redis内存数据持存储到磁盘中,若出现了Redis服务宕机后,能够从硬盘中再恢复到Redis内存中。
Redis的持久化方式包含RDB和AOF 两种方式。

1 RDB 持久化

RDB (Redis Database BackUp ),Redis数据内存文件,又称作Redis 数据快照。该文件 d u m p . r d b \textcolor{red}{dump.rdb} dump.rdb一般放在redis安装的根路径下。

R D B 持久化命令 \textcolor{red}{RDB持久化命令} RDB持久化命令
s a v e \textcolor{blue}{save} save : 当前命令会在redis停机前由 主线程 \textcolor{red}{主线程} 主线程执行。将redis中的数据持久化到硬盘中。由于是主线程执行,当需要持久化的数据特别多时,主线程会阻塞。此时无法从redis中读取数据

b g s a v e \textcolor{blue}{bgsave} bgsave :该命令会开启一个子线程去持久化redis数据。

关于RDB持久化的形式是由配置文件 r e d i s . c o n f 来决定的 \textcolor{red}{redis.conf}来决定的 redis.conf来决定的

#当seconds内redis有changes个变化时,将会自动执行bgsave命令去持久化数据到硬盘中中
save <seconds> <changes>  
#900m内1个变化时,持久化数据
save 900 1   
#300s内10个key变化,进行持久化
save 300 10  
#60s内有10000个key变化,进行持久化
save 60 10000 /

#禁用RDB持久化
save ""


##持久化文件的名字为dump.rdb
dbfilename dump.rdb //

#持久化时的文件存储目录
dir ./  

在这里插入图片描述

(1)bgsave是基于异步去同步数据的,由主进程创建一个子进程

(2) 本来进程之间的数据是无法共享的,bgsave会通过fork操作,将主进程的页表赋值到子进程中。 页表保存了物理内存和虚拟内存的映射关系,因此主进程和子进程在某种程度上就属进程中的物理数据共享。通过操作虚拟内存间接的操作了物理内存中的数据 \textcolor{red}{页表保存了物理内存和虚拟内存的映射关系,因此主进程和子进程在某种程度上就属进程中的物理数据共享。通过操作虚拟内存间接的操作了物理内存中的数据} 页表保存了物理内存和虚拟内存的映射关系,因此主进程和子进程在某种程度上就属进程中的物理数据共享。通过操作虚拟内存间接的操作了物理内存中的数据
(3)子进程操作内存数据持久化到RDB文件中。然后用新的RDB文件替换旧的RDB文件

在使用RDB持久化redis内存数据的时候,会有以下几个缺点。
(1)save 由于指令会在指定秒内发生指定数目的key变化时,才会触发RDB 持久化动作,若是还未持久化就发生了Redis宕机,那么此段时间内写入的数据都会丢失
(2)Redis在Fork子进程、进程写RDB文件和文件压缩都是较耗时的

1 AOF 持久化

AOF(Appending Only File),将redis的每一个写命令记录下来,相当于一个命令日志文件。当redis宕机后,为了恢复数据,可以读取该文件。

在redis中,AOF持久化的方式默认是关闭的,开启时需要修改redis.conf文件

# 默认是关闭的 no
appendonly yes
#aof文件名称 
appendfilename "appendonly.aof"

AOF的命令记录的频率也可以通过redis.conf文件来配置

## 每执行一次写命令,立即记录到AOF文件
appendfsync always
## 写命令执行完先放到AOF缓冲区,然后每个1s将缓冲区数据写到AOF文件中,是默认方案
appendfsync everysec
## 写命令执行完先放到缓冲区,由操作系统决定何时将缓冲区数据写入到硬盘中。
appendfsync no
配置项刷盘时机优点缺点
always同步刷机可靠性高,几乎不丢失数据性能影响大
everysec每秒刷机性能适中会丢失1s数据
no操作系统控制性能最好可靠性最差,可能会丢失大量数据

AOF触发阈值

##相较于上个AOF文件,增长了100%时,触发AOF持久化
auto-aof-rewrite-percentage 100
##相较于上个AOF文件,增长了64M时,触发AOF持久化
auto-aof-rewrite-min-size 64mb

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

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

相关文章

软件测试面试题【2023整理版(含答案)】

01、您所熟悉的测试用例设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答&#xff1a;有黑盒和白盒两种测试种类&#xff0c;黑盒有等价类划分方法 边界值分析方法 错误推测方法 因果图方法 判定表驱动分析方法 正交实验设…

现有的vue3+ts+vite项目集成electron

效果图 什么时Electron Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序框架。 Electron兼容Mac、Windows和Linux,可以构建出三个平台的应用程序。 现有的vue3项目集成Electron 安装依赖 原来有一个vue3+ts+vite+pnpm的项目,其中sub-modules是子项目,web是…

威海--游记

威海盛夏已至&#xff0c;气温攀升的同时&#xff0c;小伙伴们出去玩的心也都藏不住了。 作为离韩国最近的城市&#xff0c;不出国门就能轻松get到浓浓的“韩范儿”&#xff01;从韩式建筑、小吃甜品&#xff0c;再到各种宝藏打卡小店&#xff0c;玩法超多&#xff0c;好吃好看…

计算机竞赛 python+opencv+深度学习实现二维码识别

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度学习实现二维码识别 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 该项目较为新颖&…

__ob__: Observer 后缀的数组的取值方式

开发中&#xff0c;经常从接口、父组件中&#xff0c;拿到数组然后给新的数组使用&#xff0c; 但是&#xff0c;有时候会发现带有 __ob__: Observer 后缀的数组&#xff0c;对这种数组来说&#xff0c;你是无法取到这个数组的值的&#xff0c; 而且&#xff0c;离谱的是consol…

【广州华锐互动】物联网工程VR虚拟课件有哪些特色?

物联网工程VR虚拟课件由广州华锐互动制作&#xff0c;是一种利用虚拟现实技术&#xff0c;将物联网的概念和应用场景通过模拟的方式呈现给学生的教学工具。相比传统的教学方式&#xff0c;物联网工程VR虚拟课件具有以下特色&#xff1a; 1.交互性强 物联网工程VR虚拟课件可以让…

七夕音乐照片墙制作教程,打造独一无二的浪漫礼物

大家好&#xff0c;我是机灵鹤。 一年一度的七夕马上到了。 我准备送女朋友一个亲手制作的&#xff0c;有创意的&#xff0c;有程序员特色的礼物。 女朋友特别喜欢林俊杰&#xff0c;于是我决定做一个林俊杰歌曲的 NFC 音乐相框 送给她 。 只需要用手机 NFC 在歌曲照片上贴…

韧性数据安全体系组成:多层级快速响应 |CEO专栏

风险是可以具象化和可感知的对象&#xff0c;是数据安全的衡量标准之一&#xff0c;上期「构建适应性进化的韧性数据安全体系」专栏&#xff0c;对韧性数据安全体系的组成-适应性动态风险展开介绍。 本期内容&#xff0c;将介绍韧性数据安全体系的另一个重要组成—多层级快速响…

Dubbo 与 gRPC、Spring Cloud、Istio 的关系

很多开发者经常会问到 Apache Dubbo 与 Spring Cloud、gRPC 以及一些 Service Mesh 项目如 Istio 的关系&#xff0c;要解释清楚它们的关系并不困难&#xff0c;你只需要跟随这篇文章和 Dubbo 文档做一些更深入的了解&#xff0c;但总的来说&#xff0c;它们之间有些能力是重合…

家纺家居小程序商城搭建指南

随着移动互联网的快速发展&#xff0c;小程序成为了商家们开展电商业务的重要方式之一。家纺家居行业作为一个庞大的市场&#xff0c;也可以通过搭建小程序商城来实现线上销售。下面就为大家介绍一下如何搭建家纺家居小程序商城。 首先&#xff0c;我们需要找一个专业成熟的小程…

el-tree通过default-expand-all动态控制展开/折叠

1、如下图通过勾选框动态控制展开/折叠&#xff0c;全选/清空 2、实现方式如下&#xff1a;定义key&#xff0c;监听checked2修改treeKey&#xff0c;重新渲染tere&#xff1b;附加全选和清空。 <div class"tree"><el-checkbox v-model"checked1"…

Salesforce 为什么能够在 CRM 市场获得成功?

Salesforce 为什么能够在 CRM 市场获得成功&#xff1f; 虽然salesforce有着水土不服&#xff0c;数据安全等问题&#xff0c;但依旧受到了国内CRM系统使用者的追捧。 但是近年来国内的一些CRM平台也做得很不错了&#xff0c;我认为没必要执着于非本土系统。 下面就以一个CR…

【C语言】静态通讯录 -- 详解

一、实现目标 1、功能 保存 1000 个联系人的信息添加联系人删除联系人修改联系人查找联系人排序 2、个人信息&#xff08;结构体&#xff09; 名字年龄性别电话地址 二、创建文件 test.c&#xff08;专门测试通讯录的功能&#xff09;contact.c&#xff08;接口的实现&#xf…

物联网智慧安防实训综合实训基地建设方案

一、系统概述 物联网智慧安防实训综合实训基地是一个为学生提供综合实践、培养技能的场所&#xff0c;专注于物联网技术与智慧安防应用的培训和实训。通过物联网智慧安防实训综合实训基地的建设和运营&#xff0c;学生可以在真实的环境中进行实践训练&#xff0c;提高其物联网技…

【网络基础】传输层

【网络基础】传输层 文章目录 【网络基础】传输层1、端口号1.1 工具 2、UDP协议2.1 协议端格式2.2 UDP特点2.3 传输数据报2.4 缓冲区2.5 基于UDP应用层协议2.6 使用注意事项 3、TCP协议3.1 协议段格式3.2 ACK机制3.3 超时重传机制3.4 连接管理机制3.5 滑动窗口3.6 流量控制3.7 …

RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接内存访问)是一种能力&#xff0c;允许在计算机主板上的设备直接把数据发送到内存中去&#xff0c;数据搬运不需要CPU的参与。 传统内存访问需要通过CPU进行数据copy来移动数据&#xff0c;通过CPU将内存中的Buffer1移动到Buffer2中。DMA模…

确定产品需求边界需重点关注4个方面

产品需求需要确定边界&#xff0c;因为资源的是有限的。而没有边界的需求&#xff0c;会造成项目目标混乱&#xff0c;工期的延长&#xff0c;开发成本增加等问题。 1、定义最小业务单元 一般来说&#xff0c;产品不可能做大而全&#xff0c;需有自己专属的业务市场。从用户角度…

vue3-vuex

一、概念 &#xff08;1&#xff09;Vuex 是一个状态和数据管理的框架&#xff0c;负责管理项目中多个组件和多个页面共享的数据。 &#xff08;2&#xff09;在开发项目的时候&#xff0c;我们就会把数据分成两个部分&#xff0c;一种数据是在某个组件内部使用&#xff0c;我…

升级iPhone 15 Pro Max还是等待下一代?看看我们的比较分析!

对于拥有13 Pro Max并即将结束两年合同的用户,或者任何想看看是否值得购买两年前非常好的旗舰iPhone的最新机型的人来说,分解iPhone 15 Pro Max与iPhone 13 Pro Max的差异非常重要。无论你的动机是什么,我们都会帮助你找到答案。 iPhone 15 Pro Max还没有发布,但很快我们就…

元宇宙和vr的区别是什么?元宇宙一定要借助vr吗

引言&#xff1a; 当前&#xff0c;虚拟现实&#xff08;VR&#xff09;和元宇宙&#xff08;Metaverse&#xff09;作为科技领域的两大亮点&#xff0c;正以其巨大的潜力带领着人类走向数字化。然而&#xff0c;尽管二者都与虚拟世界紧密相关&#xff0c;但它们之间却存在着…