[Redis]-持久化方式
创始人
2024-02-22 20:57:00
0

[Redis]-持久化方式

森格 | 2022年11月

本文是在学习Redis中,对Redis持久化的个人总结。


一、 持久化与Redis

1.1 什么是持久化

在这里插入图片描述

持久化是一种将程序数据在瞬时状态和持久状态间的转换机制,也就是把数据保存到可永久保存的存储设备中去。

1.2 Redis的持久化

对于Redis持久的意义在于故障恢复,尽量Redis做cache缓存可以保存部分重要数据,但是没有持久化,一旦发现灾难性故障,就会丢失所有数据。
在这里插入图片描述

下面一起了解下Redis时如何实现持久化的。

二、Redis的持久化

2.1 RDB方式

RDB,全称Redis Database Backup File,即Redis数据备份文件,也被称为Redis数据快照。

1) RDB的格式

在这里插入图片描述
相关参数

在这里插入图片描述

2) RDB的执行

手动执行

通过save执行,但该命令由Redis主进程执行,由于Redis是单线程的,所以会阻塞其他命令。

自动执行
在这里插入图片描述

这种方式基于Redis的主动停机,对于宕机不会执行。

周期执行
在这里插入图片描述

在Redis的配置文件redis.conf中可以看到RDB的触发机制(快照规则)。

3)RDB原理

在这里插入图片描述
简单来说,由父进程fork派生出一个子进程,由子进程来生成临时的RDB文件,再进行写入到正式RDB文件。

4)RDB优缺点

优点:

● 占用空间小,RDB为二进制文件且可以压缩。
● Redis性能最大化,父进程只需要fork一个子进程,其他工作都由子进程操作。

缺点:

● 数据不完整,Redis异常退出时,最后一次快照之后的数据丢失。
在这里插入图片描述

2.2 AOF方式

AOF,Append Only File(追加文件),也就是说,Redis会将执行的写入命令都记录在文件中,这种方式就是AOF。
在这里插入图片描述

1) AOF参数

开关,文件名
在这里插入图片描述

记录频率
在这里插入图片描述

2) 执行频率对比

no
性能最高,安全性最低。写入和保存由主进程执行,存在写入阻塞,没有保存阻塞,因为保存发生在AOF关闭或Redis关闭时执行;如果中途停机,丢失数据量由操作系统OS的缓存刷洗策略决定。

everysec
兼顾性能和安全性。写入由主进程执行,阻塞主进程,保存由子进程执行,不直接阻塞主进程;最多会丢失1秒数据。

always
安全性最高,性能最差。写入和保存由主进程执行,虽然数据可靠性高,但同步刷盘,造成服务器可能长时间阻塞,极大拉低了性能。

频率配置项刷盘时机优点缺点
no操作系统决定性能最佳可靠性最差,可能丢失大量数据
everysec每秒刷盘兼容性能与安全性最多丢失1秒数据
always同步刷盘数据可靠性最佳性能最差

3) AOF原理
在这里插入图片描述
AOF文件瘦身

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

4) AOF优缺点

优点

● 性能高,数据丢失少。默认刷盘策略为每秒一次,最多丢失1秒的数据。

缺点

● 文件体积大。对相同数据集,AOF的体积要大于RDB

二、 总结

最后,用图表对本文上述内容做简单总结:

RDBAOF
持久化原理对内存做快照记录每一次的命令
文件大小压缩后文件体积小相对RDB文件体积较大
数据完整性不完整,丢失两次快照之间的数据相对完整,最多丢失1秒的数据
数据恢复优先级低,因为数据完整性不如AOF小高,数据完整性高

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...