Redis持久化——RDB和AOF

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.hqwc.cn/news/69822.html

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

相关文章

公司电脑三维图纸加密、机械图挡加密软件

机械图纸加密软件的问世&#xff0c;让很多的网络公司都大受其带来的工作中的便利。在安装了机械图纸加密软件后&#xff0c;不仅可以很好的管理员工在工作时的上网娱乐&#xff0c;在对整个公司员工的工作效率上也有着明显的提高&#xff0c;那么对于机械图纸加密软件的具体特…

Docker一键部署项目,无需登录XShell

文章目录 一键部署项目Docker手动部署SpringBoot项目编写docker部署的脚本文件script.sh 脚本内容 特别注意&#xff01;编写dockerfiledockerfile 文件内容 上传后端服务的jar包到服务器中执行 script 脚本部署后端服务 自动部署SpringBoot项目引入jsch依赖编写jsch工具类执行…

【T+】畅捷通T+修改数据精度小数点,提示小数位数只能改大。

【问题描述】 使用畅捷通T软件过程中&#xff0c; 修改数据精度过程中&#xff0c;由于误操作&#xff0c;误将数量小数位数改大&#xff0c;并且保存了。 但是看软件的说明以及提示&#xff0c; 软件提示&#xff1a;数量小数位只能改大。 软件说明&#xff1a;建账后位数只能…

Vue+SpringBoot后台管理系统:Vue3+TypeScript项目搭建(一)

写在开始:一个搬砖程序员的随缘记录文章目录 一、Node安装二、Vue CLI安装三、相关的版本四、创建Vue3TypeScript项目五、Vue项目初始化六、项目启动 一、Node安装 查看Note版本 node -v查看npm版本 npm -v然后将npm升级至最新版本 npm -g install npm将npm下载源换至http:…

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…

Spring的三种异常处理方式

1.SpringMVC 异常的处理流程 异常分为编译时异常和运行时异常&#xff0c;编译时异常我们 try-cache 进行捕获&#xff0c;捕获后自行处理&#xff0c;而运行时异常是不 可预期的&#xff0c;就需要规范编码来避免&#xff0c;在SpringMVC 中&#xff0c;不管是编译异常还是运行…

mac安装vscode 配置git

1、安装vscode 官网地址 下载mac稳定版安装很慢的解决办法 (转自) mac电脑如何解决下载vscode慢的问题 选择谷歌浏览器右上角的3个点&#xff0c;选择下载内容&#xff0c;右键选择复制链接地址&#xff0c;在新窗口粘贴地址&#xff0c; 把地址中的一段替换成下面的vscode.cd…

goland插件推荐Rider UI Theme Pack

推荐一个goland配色插件Rider UI Theme Pack&#xff0c;里面自带visual assist配色&#xff0c;配色截图如下&#xff1a; 直接在plugins里面进行搜索或者在插件home page下载后进行安装&#xff0c; 然后按照下图进行设置即可。 此插件还适用于Jetbrains旗下的Clion和Pycharm…

【嵌入式学习笔记】嵌入式入门7——IIC总线协议

1.IIC简介 IIC即Inter Integrated Circuit&#xff0c;集成电路总线&#xff0c;是一种同步&#xff0c;串行&#xff0c;半双工通信总线。 IIC总线协议——总线就是传输数据通道&#xff0c;协议就是传输数据的规则&#xff0c;有以下特点&#xff1a; 由时钟线SCL和数据线S…

数学建模之“TOPSIS数学模型”原理和代码详解

一、简介 TOPSIS&#xff08;Technique for Order Preference by Similarity to Ideal Solution&#xff09;是一种多准则决策分析方法&#xff0c;用于解决多个候选方案之间的排序和选择问题。它基于一种数学模型&#xff0c;通过比较每个候选方案与理想解和负理想解之间的相…

HTTPS 的加密流程

目录 一、HTTPS是什么&#xff1f; 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么&#xff1f; HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…

数仓架构模型设计参考

1、数据技术架构 1.1、技术架构 1.2、数据分层 将数据仓库分为三层&#xff0c;自下而上为&#xff1a;数据引入层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff…