news 2026/9/6 5:45:31

Redis持久化机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis持久化机制

Redis 是一款内存型数据库,绝大多数数据都存储在内存中,读写速度极快。但内存数据是易失性的,一旦机器断电、进程崩溃、重启,内存数据会全部丢失。

为了解决数据丢失问题,Redis 提供了持久化机制,把内存数据定期落地到磁盘,保证重启后可以恢复数据。

那么Redis 中一共有三种持久化方案:

  • RDB 快照持久化:存某一刻的全量数据

  • AOF 日志持久化:存每一条写命令

  • 混合持久化(RDB+AOF):兼顾速度与安全,生产最优

一、RDB 持久化(快照)

1.1 原理

RDB(Redis Database)是全量快照。Redis 在指定时间点,把当前内存中所有数据序列化为二进制文件,保存为dump.rdb。简单理解RDB 保存的是“某一瞬间的完整数据镜像”

1.2 触发方式

有两种触发方式,分别是手动触发和自动触发

手动触发
  • SAVE:主进程自己做快照,全程阻塞,线上禁用

  • BGSAVE:fork 子进程做快照,主进程不阻塞,线上默认使用

自动触发(配置文件)
save 900 1 save 300 10 save 60 10000

含义:满足任意一条就自动执行 BGSAVE:

  • 900 秒内至少 1 个 key 改动

  • 300 秒内至少 10 个 key 改动

  • 60 秒内至少 10000 个 key 改动

1.3 RDB 优缺点

优点:

  • 二进制压缩文件,体积小,适合备份、迁移

  • 重启恢复数据速度最快

  • BGSAVE 子进程执行,不阻塞主业务

缺点:

  • 会丢数据:两次快照之间的增量数据宕机丢失

  • 大数据量 fork 会有短暂阻塞

  • 二进制文件无法人工修改、修复

二、AOF 持久化(日志)

2.1 原理

AOF(Append Only File)以日志形式记录每一条写命令,不断追加到 aof 文件末尾。重启 Redis 时,重新执行一遍日志里的命令,恢复内存数据。

AOF 默认关闭,需要手动开启:

appendonly yes

2.2 三种刷盘策略 appendfsync

# 每写一条就刷盘,最安全、最慢 appendfsync always # 每秒刷一次盘(默认),最多丢 1 秒数据 appendfsync everysec # 交给系统刷盘,性能最高、最不安全 appendfsync no

2.3 AOF 重写机制(bgrewriteaof)

随着不断写入,AOF 文件会越来越大,存在大量冗余命令(多次修改同一个 key)。

AOF 重写:不读旧日志,直接根据当前内存数据,生成最简命令写入新 AOF,替换旧文件,实现文件瘦身。

自动重写配置:

auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

2.4 AOF 优缺点

优点:

  • 数据更安全,默认最多丢失 1 秒数据

  • 文本格式,可手动修复损坏日志

缺点:

  • 文件体积比 RDB 大很多

  • 重启恢复速度比 RDB 慢

  • 持续刷盘有一定 IO 压力

三、混合持久化(RDB + AOF)Redis4.0+

现在主要采用两者结合的模式

3.1 作用

结合 RDB恢复快、体积小和 AOF数据安全的优点,解决纯 AOF 重启慢、纯 RDB 丢数据的问题。

开启方式:

aof-use-rdb-preamble yes

3.2 机制流程

  1. AOF 重写时,先把当前全量数据以 RDB 二进制格式写入文件头部

  2. 后续新的写命令,继续以 AOF 日志追加在后面

  3. 最终文件结构:RDB 全量快照 + AOF 增量日志

3.3 重启恢复

先快速加载头部 RDB 全量数据,再回放后面少量 AOF 增量命令,又快又安全

四、Redis 数据恢复优先级

  1. 开启 AOF/混合持久化:优先加载 AOF 文件

  2. 未开启 AOF:加载 RDB 文件

  3. AOF 损坏可修复:redis-check-aof --fix xxx.aof

五、生产环境最佳实践

  1. 不单独使用 RDB:丢数据风险高

  2. 生产推荐开启:AOF + 混合持久化

  3. RDB 可作为定时冷备份,用于异地容灾

  4. 持久化文件与业务磁盘分离,防止磁盘故障数据丢失

  5. 大内存机器控制重写频率,避免频繁 fork 导致卡顿

总结

  • RDB:快照、体积小、恢复快、会丢数据 → 适合备份

  • AOF:日志、安全性高、文件大、恢复慢 → 适合保数据

  • 混合持久化:集两者优点,生产环境标准方案

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 5:44:54

用“AI内部法庭”对抗大模型幻觉:多角色校验与Python实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 5:43:38

DNF装备掉落系统实战:概率权重与模拟器设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 5:43:15

本地 AI 智能体 OpenClaw 实操,Windows 图形化部署排坑全流程

🦞 Windows 一键部署 OpenClaw 教程|5 分钟搞定本地 AI 智能体,告别复杂配置 适配版本:Windows OpenClaw 3.1.0;Mac OpenClaw 2.7.9 前言👋 开源社区热度高涨的 OpenClaw,圈内昵称小龙虾。凭借…

作者头像 李华
网站建设 2026/9/6 5:43:04

字节跳动开源UI-TARS-desktop:视觉大模型驱动的GUI智能体实操解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 5:42:43

AI轻松挖掘漏洞!小白也能学会网络安全——收藏这份实战指南

AI轻松挖掘漏洞!小白也能学会网络安全——收藏这份实战指南 本文通过一个实际案例,展示了AI在漏洞挖掘中的强大能力。作者利用AI系统扫描出一个电商平台的订单金额篡改漏洞,并通过详细步骤展示了人工复现过程。文章强调了AI能快速识别风险点…

作者头像 李华
网站建设 2026/9/6 5:39:18

知漫剧AI短剧制作教程:零基础从脚本到成片实测

引言 2026年AI短剧赛道持续火热,短剧和小说推文在各平台流量表现抢眼。但对零基础的新手来说,从脚本到成片的全流程到底怎么走?本文以知漫剧(zz.jiaxunai.cn)为例,实测零基础从脚本到成片的完整流程——价…

作者头像 李华