redis中的持久化操作AOF与RDB区别

news/2025/2/16 0:22:27/

通过阅读Redis官网:

持久性:是指将数据写入持久存储,例如固态磁盘 (SSD)

包括:

  1. RDB(Redis数据库):RDB持久性按指定的时间间隔执行数据集的时间点快照
  2. AOF (仅追加文件):AOF持久性记录服务器收到的每个写入操作。然后可以在服务器启动时重建原始数据集。命令的记录格式与Redis协议本身相同
  3. RDB + AOF :顾名思义可以在同一个实例中组合AOF和RDB

RDB

优点:

  1. 可以设置时间间隔进行存档,快照保存30天,在发生灾难时还原数据集。
  2. RDB最大限度提高Redis性能,父进程会开启一个子进程去完成磁盘I/O操作

缺点:

  1. 如果redis服务器停止(停电),RDB模式由于是时间间隔拍摄快照,因此会丢失最后几分钟的数据
  2. 由于RDB性能提升是提高是提高fork() {fork()函数的解释:操作UNIX或类UNIX中的分叉函数,fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。} 如果数据集很大,则fork函数很耗时间,并且CPU性能不够,会导致Redis停止提供服务几毫秒甚至一秒。AOF也需要fork(),但频率低。可以调整重写日志的频率,减少开销。

AOF

优点:

  1. AOF是通过**(fsync函数文件数据同步到硬盘)**。fsync是使用后台线程执行的,当没有fsync正在进行时,主线程将执行写入,因此您只能丢失一秒钟的写入。
  2. AOF是仅追加日志,因此再短电时不会有寻道或损坏问题,redis-check-aof工具可以修复它
  3. 当Redis继续追加到旧文件时(AOF文件变得太大时会重写文件),会使用创建当前数据集所需的最少操作集生成一个全新的文件,一旦第二个文件准备就绪,Redis就会切换两者并开始追加到新文件。
  4. 只要没有重写AOF日志文件,就能重新启动Redis保存数据集

缺点:

  1. AOF文件文件大小大于同一数据集等效RDB文件
  2. AOF可能比RDB慢,我自己觉得应该和RDB的fork函数创建子进程有关有关。

总结:RDB速度上和资源的利用上具有优势,但在安全性上AOF更加稳妥。

以上来自redis官网瑞迪斯持久性 |雷迪斯 (redis.io),还有自己的一点小理解(理解有误希望您能纠正)。


http://www.ppmy.cn/news/42709.html

相关文章

掌握这些“学习方法和工具”,让你事半功倍!

在中国这个高竞争的社会环境下,学习成为了每个人都需要掌握的技能。然而,学习并不仅仅是读书和听课,更是需要一系列高效的方法和习惯来提高效率。本文将介绍一些实用的学习经验和方法,以及推荐一些国内好的学习工具和平台&#xf…

Apollo配置中心使用篇

Apollo配置中心使用篇常见配置中心对比Apollo核心概念Apollo核心特性Apollo架构设计各模块介绍服务端设计客户端设计Apollo与Spring集成的底层原理Apollo安装安装apollo-portalconfig service和admin service部署多网卡问题解决修改Portal环境配置调整ApolloPortal配置Apollo权…

设备是如何实现延时关机的

文章目录1. 引言2. 延时关机的实现方式2.1 自建定时服务实现2.2 RocketMQ中间件实现2.2.1 生成端demo2.2.2 消费端demo3. 结尾1. 引言 在设备联动中,有些场景需要保持设备继续工作一段时间再关机。比如在厨房场景下,存在燃气灶和烟机的联动场景&#xf…

Docker开启并配置远程安全访问

前言 在工作学习中,为了提高项目部署效率,一般会在Idea中直接使用Docker插件连接服务器Docker容器,然后将项目打包与DockerFile一起build成Docker镜像部署运行。但是不可能服务器总是跟着主机的,因此呢时常会面临的一个问题就是从…

LinuxGUI自动化测试框架搭建(一)- 使用前阅读/总体需求

(一)- 使用前阅读/总体需求1 实现目的2 功能需求3 其他要求4 适用人员5 学习周期6 学习建议7 内容直达8 反馈联系1 实现目的 在LInux操作系统上,针对桌面端软件,模拟用户(鼠标、键盘)操作,达到…

SCSS中使用typescript变量

TS读取配置文件中的内容后&#xff0c;需要交给定义好的scss元素使用。 读取外放配置信息参见&#xff1a;Vue3TS配置信息外放 在APP.vue中添加如下几部分内容 声名变量&#xff1a; <script lang"ts" setup> //颜色变量来源于外部配置文件&#xff0c;在…

【无功优化】基于多目标差分进化算法的含DG配电网无功优化模型【IEEE33节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

TensorFlow 卷积神经网络实用指南:6~10

原文&#xff1a;Hands-On Convolutional Neural Networks with TensorFlow 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&am…