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

news2024/9/22 13:37:41

目录

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 的格式追加到文件的末尾,它的文件格式如下:

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


 

 

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

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

相关文章

模型预测笔记(二):结合SMOTE来进行数据不均衡处理实操

文章目录 数据不均衡危害如何解决SMOTE原理代码效果 数据不均衡危害 在模型预测中,数据不均衡是指不同类别的样本数量差异很大。这种情况可能会对模型的性能和结果产生一些危害: 偏斜的预测结果:由于某些类别的样本数量较少,模型…

Rides分布式缓存

分布式缓存 -- 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 1.Redis持久化 Redis有两种持久化方案: RDB持久化 AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)&#x…

从Web 2.0到Web 3.0,互联网有哪些变革?

文章目录 Web 2.0时代:用户参与和社交互动Web 3.0时代:语义化和智能化影响和展望 🎉欢迎来到Java学习路线专栏~从Web 2.0到Web 3.0,互联网有哪些变革? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页&#x…

Docker容器与虚拟化技术:容器运行时说明与比较

目录 一、理论 1.容器运行时 2.容器运行时接口 3.容器运行时层级 4.容器运行时比较 5.强隔离容器 二、问题 1.K8S为何难以实现真正的多租户 三、总结 一、理论 1.容器运行时 (1)概念 Container Runtime 是运行于 k8s 集群每个节点中&#xff…

基于51单片机的八路抢答器Protues仿真设计

目录 一、设计背景 二、实现功能 三、仿真演示 四、源程序(部分) 一、设计背景 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于51单片机的八路抢答器设计。本设计中,51单片机充当了核心控制器的角…

HTML浪漫动态表白代码绚烂星空烟花+粉色大爱心+3D旋转相册+音乐(附源码)(三)

一. 前言 七夕马上就要到了,为了帮助大家高效表白,下面再给大家加几款实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,求爱表白等场景,可直接使用。 来吧,展示&am…

统一git使用方法,git状态变迁图,git commit提交规范

目录 说明 统一git使用方法 git状态变迁图 git commit 提交规范 说明 多次工作中多名员工不懂git多次技术分享,自行查资料学习git并使用,会出现使用各种偏僻的命令,异常问题无法解决;或出现带url的git合并提交。主要是学的不…

【腾讯云 TDSQL-C Serverless 产品测评】全面测评TDSQL-C Mysql Serverless

全面测评TDSQL-C Mysql Serverless 文章目录 全面测评TDSQL-C Mysql Serverless前言什么是TDSQL-C Mysql Serverless初始化 TDSQL-C Mysql Serverless新建数据库建立数据表开启外网访问 兼容性SQL文件 导入导出navicat 直接在线传输 构建测试环境准备Python测试脚本准备 Jmeter…

算法通关村第5关【白银】| 哈希和栈经典算法题

1.两个栈实现队列 思路:两个栈,一个输入栈,一个输出栈。 当需要输入的时候就往inStack中插入,需要输出就往outStack中输出,当输出栈是空就倒出输入栈的数据到输出栈中,这样就保证了后插入的数据从栈顶倒入…

MySQL数据库中间件Mycat介绍及下载安装(教程)

一,介绍 MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器…

数组分割(2023省蓝桥杯)n种讨论 JAVA

目录 1、题目描述:2、前言:3、动态规划(bug):3、递归 剪枝(超时):4、数学(正解): 1、题目描述: 小蓝有一个长度为 N 的数组 A [A0, A1,…, AN−…

3分钟通过日志定位bug,这个技能测试人必须会!

♥ 前 言 软件开发中通过日志记录程序的运行情况是一个开发的好习惯,对于错误排查和系统运维都有很大帮助。 Python 标准库自带了强大的 logging 日志模块,在各种 python 模块中得到广泛应用。 一、简单使用 1. 入门小案例 import logging loggin…

sync修饰符(重要)

作用:可以实现 子组件 与 父组件 数据的双向绑定 简化代码 特点:prop属性名,可以自定义,非固定为value 场景:封装弹框类的基础组件,visible属性 true显示 false隐藏 本质:就是 :属性名 和 updat…

SpringBoot 配置优先级

一般而言,SpringBoot支持配置文件进行配置,即在resources下的application.properties或application.yml。 关于配置优先级而言, application.properties>application.yml>application.yaml 另外JAVA程序程序还支持java系统配置和命令行…

lombok启动不生效(什么方法都试了,可还是不生效怎么办 ?! 救救我)

使用IntelliJ IDEA 2021.1.3&#xff08;Ultimate Edition&#xff09;时提示Lombok不生效 java: You aren’t using a compiler supported by lombok, so lombok will not work and has been disabled. 方式一&#xff1a;我们手动更新一下版本到以下版本 <!--Lombok--&…

水果音乐制作软件fl studio v21.1.0.3713 中文特别版

水果音乐制作软件fl studio v21.1.0.3713 中文特别版是一个功能完备的音乐制作环境&#xff0c;能够进行多轨道音频录制、音序处理和混音&#xff0c;可以帮助用户创作专业质量的音乐轨道。 借助 VST 托管、灵活的混音器、高级 MIDI 和 ReWire 支持&#xff0c;您将轻松驾驭各种…

第14章——FreeRTOS信号量

1.信号量的简介 信号量是一种解决同步问题的机制&#xff0c;可以实现对共享资源的有序访问。 信号量&#xff1a;用于传递状态&#xff08;区别于队列传递消息&#xff09; 信号量的计数值都有限制&#xff1a;限定最大值。 如果最大值被限定为1&#xff0c;那么它就是二值…

多种编程语言运行速度排名-10亿次除7求余数为0的数量

最佳方式是运行10次&#xff0c;取平均数&#xff0c;用时秒数显示3位小数。 因为第一次打开&#xff0c;可能CPU还没优化好&#xff0c;多次取平均&#xff0c;比较准确 第1次共10次&#xff0c;用时3秒&#xff0c;平均3秒 第2次共10次&#xff0c;用时4秒&#xff0c;平均3.…

搭建开发环境-操作系统篇(一键搭建开发环境)

概述 所谓工欲善其事必先利其器&#xff0c;搭环境往往是开发过程中卡出很多初学者的拦路虎。 对于很多老鸟来说&#xff0c;很多东西都已经习惯成自然&#xff0c;也就没有刻意和初学者说。但对于很多初学者&#xff0c;却是受益良多。 这个系列&#xff0c;先从操作系统开始…

string类写时拷贝

文章目录 1.string类拷贝构造函数的现代写法2.string类写时拷贝vs和g下string结构的不同vs下string的结构&#xff1a;g下string的结构 3.总结 1.string类拷贝构造函数的现代写法 string类拷贝构造函数的传统写法&#xff1a; string(const string& s){if (this ! &s)…