当前位置: 首页 > news >正文

Redis 持久化的手段有哪些 ?RDB 和 AOF 有什么区别 ?

目录

1. Redis 持久化的手段有哪些

2. RDB 和 AOF 有什么区别

2.1 RDB 持久化

2.2  AOF 持久化

2.2.1 AOF 持久化策略有哪些

3. 混合持久化是如何执行的(了解)


1. Redis 持久化的手段有哪些

Redis 持久化的手段有三种:

  1. 快照方式(RDB - Redis Database):将某一时刻的内存数据,以二进制的方式写入磁盘.
  2. 文件追加方式(AOF - Append Only File):记录所有操作的命令,并以文本的形式追加到文件中.
  3. 混合持久化:Redis 4.0 之后新增的方式,混合持久化是集 RDB 和 AOF 二者之长的一种持久化方式.

2. RDB 和 AOF 有什么区别

2.1 RDB 持久化

工作原理:

        RDB 是通过快照的方式,将当前 Redis 内存中的数据以二进制的格式保存到磁盘,快照文件是一个经过压缩的二进制文件,它表示某一时刻,数据库的状态。

优缺点分析:

① 优点

  • 效率高,RDB 以二进制的格式将数据存储磁盘,数据恢复快。
  • 文件小,RDB 生成的快照文件,相较于 AOF 文件小,占用磁盘空间少。

② 缺点

  • 数据丢失,因为 RDB 存储磁盘的动作是定期保存的,所以当 Redis 在快照之间发生故障,则可能丢失部分数据。(如果 10s 保存一次,在 9.99s 故障,那么这 9.99s 的数据都被丢失)

2.2  AOF 持久化

工作原理:

        AOF 持久化是把每次的写操作都以日志的形式追加到文件中,所以它比 RDB 更可靠,数据不易丢失(顶多丢失一条数据,或者 1s 的数据)

优缺点分析:

① 优点

  • 数据完整性好,AOF 持久化是把每一次写操作,都追加文件,所以它的数据更完整。
  • 可读性高,AOF 是一个文本文件,相较于 RDB 的二进制文件来说,可读性要高。
  • 提供了多种持久化策略,Redis 提供了不同的 AOF 持久化策略,可以根据数据的安全和性能进行选择。

② 缺点

  • 文件较大,AOF 的文本文件相较于 RDB 的二进制文件要大,并且是文件追加的形式,所以数据恢复和重启的速度会受到影响。
  • 频繁的写入磁盘,AOF 需要每次进行追加文件,所以会给磁盘带来一定的写入压力。

2.2.1 AOF 持久化策略有哪些

AOF 有三种持久化策略:

  1. alwaysL:每条 Redis 操作命令都会写入磁盘,最多丢失一条数据。
  2. everysec:每秒钟写入一次磁盘,最多丢失一秒的数据。(AOF 默认的持久化策略)
  3. no:不设置写入磁盘的规则,根据当前操作系统来决定。Linux 默认 30s 写入一次磁盘。

3. 混合持久化是如何执行的(了解)

        混合持久化是在 AOF 重写的时候,把 Redis 的持久化数据,以 RDB 的格式写入到 AOF 文件开头,之后的数据再以 AOF 的格式追加到文件的末尾,它的文件格式如下:

混合持久化的执行流程图:


 

 

相关文章:

Redis 持久化的手段有哪些 ?RDB 和 AOF 有什么区别 ?

目录 1. Redis 持久化的手段有哪些 2. RDB 和 AOF 有什么区别 2.1 RDB 持久化 2.2 AOF 持久化 2.2.1 AOF 持久化策略有哪些 3. 混合持久化是如何执行的(了解) 1. Redis 持久化的手段有哪些 Redis 持久化的手段有三种: 快照方式&#…...

【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容

文章目录 前言一、下载二、使用步骤1.引入样式2.html代码 总结 前言 提示:这里可以添加本文要记录的大概内容: vue后台框架,若依系统里有一个富文本编辑器,效果如下 在package.json里面查看,发现插件名叫quill 插件的…...

华纳云:ubuntu下nginx服务器如何配置

在Ubuntu操作系统上配置Nginx服务器涉及以下步骤。这里我将提供一个基本的配置示例,你可以根据自己的需求进行修改和定制。 安装 Nginx: 打开终端,并输入以下命令来安装 Nginx: sudo apt update sudo apt install nginx 启动 …...

PTP时间同步例程

下面是一个基本的PTP时间同步例程&#xff0c;可以使用Arduino或其他类似的微控制器实现&#xff1a; 步骤1&#xff1a;准备硬件 - 一个Arduino或类似的微控制器 - 一个以太网模块 步骤2&#xff1a;导入库文件 #include <Ethernet.h> #include <EthernetUdp.h>…...

【ES6】ES6遍历属性的方法

在ES6中&#xff0c;有几种遍历属性的方法&#xff0c;其中包括&#xff1a; 使用for…in循环和Object.keys()方法。 let obj {a: 1, b: 2, c: 3}; for (let key in obj) {console.log(obj[key]); }使用for…of循环和Object.values()方法。 let obj {a: 1, b: 2, c: 3}; f…...

【Web系列二十四】使用JPA简化持久层接口开发

目录 环境配置 1、引入依赖 配置文件 代码编写 实体类创建 JPA常用注解 Service与ServiceImpl Service ServiceImpl Controller Dao 三种实现Dao功能方式 1.继承接口&#xff0c;使用默认接口实现 2.根据接口命名规则默认生成实现 3.自定义接口实现(类似MyBatis…...

Flink流批一体计算(16):PyFlink DataStream API

目录 概述 Pipeline Dataflow 代码示例WorldCount.py 执行脚本WorldCount.py 概述 Apache Flink 提供了 DataStream API&#xff0c;用于构建健壮的、有状态的流式应用程序。它提供了对状态和时间细粒度控制&#xff0c;从而允许实现高级事件驱动系统。 用户实现的Flink程…...

软考高级系统架构设计师系列论文九十三:论计算机网络的安全性设计

软考高级系统架构设计师系列论文九十三:论计算机网络的安全性设计 一、计算机网络安全性设计相关知识点二、摘要三、正文四、总结一、计算机网络安全性设计相关知识点 软考高级系统架构设计师:计算机网络...

山西电力市场日前价格预测【2023-08-29】

日前价格预测 预测明日&#xff08;2023-08-29&#xff09;山西电力市场全天平均日前电价为321.48元/MWh。其中&#xff0c;最高日前电价为372.80元/MWh&#xff0c;预计出现在19: 30。最低日前电价为272.85元/MWh&#xff0c;预计出现在12: 30。 价差方向预测 1&#xff1a; 实…...

计算机毕设 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新…...

ES 7.6 - APi基础操作篇

ES7.6-APi基础操作篇 前言相关知识索引相关创建索引查询索引查询所有索引删除索引关闭与打开索引关闭索引打开索引 冻结与解冻索引冻结索引解冻索引 映射相关创建映射查看映射新增字段映射 文档相关(CURD)新增文档根据ID查询修改文档全量覆盖根据ID选择性修改根据条件批量更新 …...

【Go 基础篇】Go语言循环结构:实现重复执行与迭代控制

介绍 循环结构是编程中的重要概念&#xff0c;它允许我们重复执行一段代码块&#xff0c;或者按照一定的条件进行迭代控制。Go语言提供了多种循环结构&#xff0c;包括for、while和do-while等&#xff0c;用于不同的场景下实现循环操作。本篇博客将深入探讨Go语言中的循环结构…...

RabbitMQ笔记-RabbitMQ基本术语

RabbitMQ基本术语 相关概念; 生产者&#xff08;Producer&#xff09;&#xff1a;投递消息。消息&#xff1a;消息体&#xff08;payload&#xff09;标签&#xff08;label&#xff09;&#xff1b;生产者把消息交给rabbitmq&#xff0c;rabbitmq会根据标签把消息发给感兴趣…...

Git向远程仓库与推送以及拉取远程仓库

理解分布式版本控制系统 1.中央服务器 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统&#xff01;什么意思呢? 那我们多人…...

PostgreSQL+SSL链路测试

SSL一个各种证书在此就不详细介绍了&#xff0c;PostgreSQL要支持SSL的前提需要打开openssl选项&#xff0c;包括客户端和服务器端。 测试过程。 1. 生成私钥 root用户&#xff1a; mkdir -p /opt/ssl/private mkdir -p /opt/ssl/share/ca-certificateschmod 755 -R /opt/ss…...

服务器(容器)开发指南——code-server

文章目录 code-server简介code-server的安装与使用code-server的安装code-server的启动code-server的简单启动指定配置启动code-server code-server环境变量配置 code-server端口转发自动端口转发手动添加转发端口 nginx反向代理code-servercode-server打包开发版镜像 GitHub官…...

C++贪吃蛇(控制台版)

C自学精简实践教程 目录(必读) 目录 主要考察 需求 输入文件 运行效果 实现思路 枚举类型 enum class 启动代码 输入文件data.txt 的内容 参考答案 学生实现的效果 主要考察 模块划分 文本文件读取 UI与业务分离 控制台交互 数据抽象 需求 用户输入字母表示方…...

Java之字符串实践

功能概述 字符串是Java编程中常用的数据类型&#xff0c;本文对String部分常见功能做了对应实践以及分析。 功能实践 场景1&#xff1a;字符串比较 用例代码 Test public void test_string_compare() {String s1 "abc";String s2 s1;String s5 "abc&quo…...

BM20 数组中的逆序对

描述 解题思路&#xff1a;归并排序 分治&#xff1a;分治即“分而治之”&#xff0c;“分”指的是将一个大而复杂的问题划分成多个性质相同但是规模更小的子问题&#xff0c;子问题继续按照这样划分&#xff0c;直到问题可以被轻易解决&#xff1b;“治”指的是将子问题单独进…...

高德猎鹰轨迹查询相关接口

高德猎鹰轨迹官网&#xff1a;服务管理-API文档-开发指南-猎鹰轨迹服务 | 高德地图API 轨迹查询 httpclient的post // post方法请求 创建轨迹 private static void createTrace() {String key "高德注册的key";String sid "服务id"; // 服务idString…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...