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

Redis 持久化机制:RDB 和 AOF

Redis 持久化机制:RDB 和 AOF

Redis 主要提供了两种持久化方式:**RDB(Redis Database)**和 AOF(Append-Only File)。它们各自的实现原理、优缺点以及适用场景如下。


1. RDB(Redis Database)原理

1.1 RDB 机制

RDB 采用 快照(Snapshotting) 方式定期将 内存中的数据 持久化到磁盘。Redis 会在特定时间点创建数据的二进制快照并存储到 .rdb 文件中。

RDB 触发方式:

  • 手动触发

    • SAVE:同步保存快照,会阻塞 Redis,直到保存完成。
    • BGSAVE:异步保存快照,创建子进程执行快照操作,不影响主进程处理请求。
  • 自动触发

    • 配置 save 规则(默认开启),例如:
      save 900 1  # 900秒(15分钟)内至少有1次写操作
      save 300 10 # 300秒(5分钟)内至少有10次写操作
      save 60 10000 # 60秒(1分钟)内至少有10000次写操作
      
    • 执行 SHUTDOWN 时,若未启用 AOF,则 RDB 触发保存。
    • Redis 复制(Replication)时,主节点自动生成 RDB 发送给从节点进行全量同步。

1.2 RDB 工作流程

  1. 执行 BGSAVE

    • Redis **fork(分叉)**一个子进程。
    • 子进程 遍历整个数据集,将其序列化为二进制格式存储到磁盘文件 dump.rdb
    • 完成后,替换旧的 RDB 文件。
  2. RDB 文件格式

    • RDB 文件是二进制格式,存储结构紧凑,便于快速加载。

1.3 RDB 优缺点

优点缺点
适合全量数据备份,占用存储小可能导致数据丢失(最近一次 RDB 之后的变更未保存)
RDB 结构紧凑,恢复速度快BGSAVE 需要 fork 进程,内存占用增加
适用于大规模数据冷备SAVE 操作会阻塞主线程

2. AOF(Append-Only File)原理

2.1 AOF 机制

AOF 采用 日志追加(Append-Only Log) 方式,每次执行写操作(SET、HSET、LPUSH 等)时,将命令追加到 .aof 文件。

AOF 触发方式:

  • 配置 appendonly yes 开启 AOF 。
  • AOF 采用 追加写入,并根据 appendfsync 配置决定何时同步到磁盘:
    appendfsync always   # 每次写操作都 fsync(最安全但影响性能)
    appendfsync everysec # 每秒 fsync 一次(默认,权衡性能和安全)
    appendfsync no       # 交由操作系统决定何时 fsync(最高效但不安全)
    

2.2 AOF 工作流程

  1. 写入日志

    • 每次有写操作,Redis 先写入内存 命令日志,然后追加到 AOF 文件。
  2. AOF 文件同步(appendfsync

    • 根据 appendfsync 策略,将数据刷入磁盘。
  3. AOF 重写(Compaction)

    • 随着时间推移,AOF 文件不断增长,Redis 定期重写(Rewrite) AOF 文件:
    • 触发方式
      • 手动触发:BGREWRITEAOF
      • 自动触发:Redis 判断 AOF 文件大小增长达到阈值后触发。
    • 重写机制
      • 创建子进程读取现有数据库状态,并以最少的命令重新写入 AOF。
      • 新文件生成后,替换旧 AOF 文件。

2.3 AOF 优缺点

优点缺点
数据持久性更强,丢失数据少AOF 文件比 RDB 大,写入速度慢
日志模式可读性好,可用于审计AOF 恢复速度比 RDB 慢
可自动重写,优化存储fsync 频率影响性能

3. 如何选择 RDB 和 AOF?

3.1 选择 RDB 的场景

适用于

  • 冷备份场景(如每天凌晨备份)
  • 不太关注最近几秒的数据丢失
  • 高性能读取(RDB 加载速度快)
  • 主从复制初始化(Redis 复制默认使用 RDB)

不适用于

  • 数据丢失敏感场景
  • 频繁写入的大型 Redis 实例BGSAVE 会占用大量内存)

3.2 选择 AOF 的场景

适用于

  • 数据持久化要求高(如金融、电商系统)
  • 实时记录 Redis 变更
  • 希望可读的日志文件(如数据审计、问题排查)

不适用于

  • 对恢复速度要求极高(AOF 启动慢)
  • 存储受限的环境(AOF 文件比 RDB 大)

3.3 RDB + AOF 组合方案

  • 推荐同时开启 RDB 和 AOF
    • RDB 负责 定期备份,保证快速恢复。
    • AOF 负责 增量持久化,减少数据丢失。

示例配置

# 启用 AOF
appendonly yes
appendfsync everysec# 启用 RDB
save 900 1
save 300 10
save 60 10000

在 Redis 6.0 之后,AOF 支持混合模式(RDB+AOF),减少 AOF 体积:

aof-use-rdb-preamble yes
  • 开启后,AOF 先写入 RDB 格式,再记录增量日志。

4. 总结对比

对比项RDBAOF
存储方式二进制快照追加日志
触发方式定期触发 BGSAVE实时追加
恢复速度慢(重放日志)
数据丢失风险最后一次快照后的数据丢失丢失最近 1s/无丢失(视 appendfsync
磁盘占用
写入性能
适用场景读密集、全量备份事务安全、审计、低丢失

5. 结论

  • 如果数据丢失不可接受,用 AOF。
  • 如果恢复速度最重要,用 RDB。
  • 如果既要可靠性又要性能,同时开启 RDB 和 AOF,开启 aof-use-rdb-preamble

这样可以平衡性能、存储和数据安全,让 Redis 运行更稳定。

相关文章:

Redis 持久化机制:RDB 和 AOF

Redis 持久化机制:RDB 和 AOF Redis 主要提供了两种持久化方式:**RDB(Redis Database)**和 AOF(Append-Only File)。它们各自的实现原理、优缺点以及适用场景如下。 1. RDB(Redis Database&…...

【博客之星评选】2024年度前端学习总结

故事的开端...始于2024年第一篇前端技术博客 那故事的终末...也该结束于陪伴了我一整年的前端知识了 踏入 2025 年,满心激动与自豪,我成功闯进了《2024 年度 CSDN 博客之星总评选》的 TOP300。作为一名刚接触技术写作不久的萌新,这次能走到这…...

将IDLE里面python环境pyqt5配置的vscode

首先安装pyqt5全套:pip install pyqt5-tools 打开Vscode: 安装第三方扩展:PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】,便可直接打开UI文件,进行编辑。 配置pyuic,如果下图填写方法使用…...

【专题三:穷举vs暴搜vs深搜vs回溯vs剪枝】46. 全排列

1.题目解析 2.讲解算法原理 1.首先画出决策树&#xff0c;越详细越好 2.设计代码 全局变量 List<List<Integer>> retList<Integer> pathboolean[] check dfs函数 仅关心某一节点在干什么 细节问题回溯 干掉path最后一个元素修改check权限 剪枝 check中为…...

使用傅里叶变换进行图像边缘检测

使用傅里叶变换进行图像边缘检测 今天我们介绍通过傅里叶变换求得图像的边缘 什么是傅立叶变换&#xff1f; 简单来说&#xff0c;傅里叶变换是将输入的信号分解成指定样式的构造块。例如&#xff0c;首先通过叠加具有不同频率的两个或更多个正弦函数而生成信号f&#xff08;x…...

DDD FAQs梳理

术语 领域&#xff1a;一种专门活动的范围、部类。 子域&#xff1a;一个领域细分出的多个子领域。 核心域&#xff1a;具备核心竞争力的子域。 通用域&#xff1a;同时被多个子域使用的通用功能子域&#xff0c;比如认证、权限。 支撑域&#xff1a;一些辅助性或后台功能组成…...

新星杯-ESP32智能硬件开发--SoC基础

本博文内容导读 1、当前嵌入式系统的发展情况&#xff0c;分析SoC作为物联网开发的重要技术&#xff0c;是未来物联网发展重要方向。 2、介绍SoC系统的组成和系统特点&#xff0c;了解SoC打下SoC基础。 3、介绍基于ESP32的SoC系列开发板&#xff0c;ESP32开发的系统功能进行总…...

WDM_OTN_基础知识_波分系统的网络位置

波分系统简介和OTU 在这节课的内容中&#xff0c;我们主要介绍&#xff0c;波分系统在整个通信网络中的位置&#xff0c;波分系统的构成和它的架构&#xff0c;波分设备的构成和信号图&#xff0c;以及OUT的功能和分类及波分系统的应用场景。 波分系统在整个通信网络中&#x…...

计算机网络 (46)简单网络管理协议SNMP

前言 简单网络管理协议&#xff08;SNMP&#xff0c;Simple Network Management Protocol&#xff09;是一种用于在计算机网络中管理网络节点的标准协议。 一、概述 SNMP是基于TCP/IP五层协议中的应用层协议&#xff0c;它使网络管理员能够管理网络效能&#xff0c;发现并解决网…...

Excel重新踩坑6:工作实战总结之根据筛选条件求平均成绩

一、前言&#xff1a; 这个博客的实战场景&#xff1a;给了一组学生数据&#xff0c;这些数据中&#xff0c;有全市20个社区&#xff0c;1-9年级的学生各科成绩。要求按照各社区统计1-9年级的所有学生各科平均值。下面首先介绍会用到的一些函数&#xff0c;然后再简单说明实战…...

使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。

在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出&#xff0c;详见以下博客&#xff1a; Spring Boot Apache POI 实现 Exc&#xff08;&#xff09;el 导出&#xff1a;BOM物料清单生成器&#xff08;支持中文文件名、样式美化、数据合并&#…...

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识 2025/1/18 15:12 缘起&#xff1a;做飞凌OK3588-C开发板/核心板【Linux R4】的时候&#xff0c;测试/生产要求没有开机LOGO【飞凌/Rockchip】 要求&#xff1a;黑屏或者中性界面。…...

《Hands_On_LLM》8.3: 检索增强生成-RAG技术概论

3.检索增强生成 (Retrieval-Augmented Generation (RAG)) LLM 的大规模应用很快导致人们向它们提问&#xff0c;并期望得到符合实际的答案。虽然这些模型可以正确回答一些问题&#xff0c;但它们也自信地回答了许多错误的问题。为了纠正这种行为&#xff0c;业界转而采用的主要…...

CSS中样式继承+优先级

继承属性和非继承属性 一、定义及分类 1、继承属性是指在父元素上设置了这些属性后&#xff0c;子元素会自动继承这些属性的值&#xff0c;除非子元素显式地设置了不同的值。 常见的继承属性: 字体 font 系列文本text-align text-ident line-height letter-spacing颜色 col…...

Vue进阶之旅:核心技术与页面应用实战(路由进阶)

文章目录 一、路由模块封装二、声明式导航&#xff08;一&#xff09;导航链接与高亮&#xff08;二&#xff09;声明式导航传参1. 查询参数传参2. 动态路由传参 三、路由重定向、404 与模式设置&#xff08;一&#xff09;路由重定向&#xff08;二&#xff09;路由 404&#…...

单片机存储器和C程序编译过程

1、 单片机存储器 只读存储器不是并列关系&#xff0c;是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据&#xff0c;存的是CPU正在使用的数据 永久存数据&#xff0c;存的是操作系统启动程序或指令 断电易失 …...

Vue.js 动态设置表格最大高度的实现

概述 在现代 Web 开发中&#xff0c;响应式设计至关重要&#xff0c;尤其是在处理复杂的布局和数据表格时。表格通常会受到多种因素的影响&#xff0c;如分页、合计行或动态内容&#xff0c;这可能导致表格高度的变化。本文将介绍一个基于 Vue.js 的方法 setMaxHeight&#xf…...

Java测试开发平台搭建(九)前端

1. 搭建前端vue环境 Vue3 安装 | 菜鸟教程 2. 创建项目 1.进入ui vue ui 2. create项目 3. 成功之后添加插件&#xff1a; cli-plugin-router vue-cli-plugin-vuetify 4. 添加依赖 axios 5. 点击任务开始运行 如果报错&#xff1a; 修改vue.config.jsconst { defineConfig }…...

MySQL多表查询练习

1.找出销售部门中年纪最大的员工的姓名 mysql> select name,age from dept a ,emp_new b where a.dept1b.dept2 and dept_name销售order by age desc limit 1; ------------ | name | age | ------------ | 荣七 | 64 | ------------ 1 row in set (0.00 sec) 2.求财务…...

低代码运维与管理服务

文章目录 前言一、服务内容二、服务范围三、服务流程四、服务交付件五、责任矩阵六、验收标准 前言 随着云计算技术的发展&#xff0c;数字化转型是企业的必然选择&#xff0c;企业需要实现广泛的连接并走向开放&#xff0c;传统集成工具无法满足当前企业面临的数字化转型诉求…...

从锁模到电光调制:光学频率梳技术全解析与五大主流品牌竞品对比

一.引言在精密计量与量子技术飞速发展的今天&#xff0c;光学频率梳&#xff08;Optical Frequency Comb&#xff0c;OFC&#xff09;作为一种革命性的光学测量工具&#xff0c;正在重新定义时间、频率和距离的测量精度。自2005年诺贝尔物理学奖授予光梳技术以来&#xff0c;这…...

今天不设计灰度策略,明天就回滚AI版本:AI原生研发最后的防御工事——4层熔断+2级回滚+1键快照应急协议

第一章&#xff1a;今天不设计灰度策略&#xff0c;明天就回滚AI版本&#xff1a;AI原生研发最后的防御工事——4层熔断2级回滚1键快照应急协议 2026奇点智能技术大会(https://ml-summit.org) 在AI模型服务化&#xff08;MaaS&#xff09;生产环境中&#xff0c;单次错误推理可…...

BilibiliDown视频下载器终极完整指南:5分钟从新手到高手

BilibiliDown视频下载器终极完整指南&#xff1a;5分钟从新手到高手 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors…...

一物一码系统怎么搭建?从0到1的完整实施路径与避坑指南

在数字化转型浪潮中&#xff0c;一物一码已从"锦上添花"变为企业基础设施。但市面上方案繁杂&#xff0c;企业自建常陷入"技术选型迷茫"和"业务落地困难"。本文基于顶讯科技一物一码平台的底层架构逻辑&#xff0c;拆解系统搭建的完整路径&#…...

SITS2026未公开PPT泄露分析:7个被主流框架忽略的Attention计算冗余点(附Patch代码)

第一章&#xff1a;SITS2026深度解读&#xff1a;大模型推理优化技术 2026奇点智能技术大会(https://ml-summit.org) SITS2026首次系统性地公布了面向千亿参数级大语言模型的端到端推理优化框架——SITS-Optima&#xff0c;其核心突破在于将动态稀疏注意力、量化感知编译&…...

利用screen高效管理串口会话:从基础操作到高级技巧

1. 为什么选择screen管理串口&#xff1f; 第一次接触串口调试时&#xff0c;我和大多数人一样用的是minicom。直到有次调试某款嵌入式设备&#xff0c;发现minicom显示BIOS信息时色彩混乱&#xff0c;这才开始寻找替代方案。screen这个看似普通的终端复用工具&#xff0c;在串…...

BEYOND REALITY Z-Image开源镜像实操:Docker Compose一键部署全流程

BEYOND REALITY Z-Image开源镜像实操&#xff1a;Docker Compose一键部署全流程 想体验一下生成媲美专业摄影棚级别的人像照片吗&#xff1f;今天要介绍的这个工具&#xff0c;或许能让你眼前一亮。它叫BEYOND REALITY Z-Image&#xff0c;一个专注于生成高精度写实人像的开源…...

OBS背景移除插件终极指南:三步实现专业级绿幕效果

OBS背景移除插件终极指南&#xff1a;三步实现专业级绿幕效果 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://gitc…...

具身智能科技行业前瞻探索——多任务操作、第一人称世界模型、低光照与模糊感知 国泰证券 2026-4

这份国泰海通证券 2026 年 4 月发布的具身智能科技前瞻探索&#xff08;第 3 期&#xff09;&#xff0c;核心是梳理 6 项前沿技术成果&#xff0c;聚焦人形机器人与具身智能的多任务、感知、仿真、控制、多模态五大突破&#xff0c;明确学术价值与产业落地方向。一、核心背景人…...

ZYNQ纯PL端设计:从Bit到Boot.bin的固化实战解析

1. ZYNQ纯PL端固化的核心挑战 第一次接触ZYNQ的开发者经常会遇到一个困惑&#xff1a;为什么Vivado生成的bit文件不能像传统FPGA那样直接烧录&#xff1f;这其实涉及到ZYNQ芯片的架构特点。ZYNQ本质上是ARM处理器&#xff08;PS&#xff09;和FPGA&#xff08;PL&#xff09;的…...