系列导读:本篇将深入讲解 Redis 持久化机制,包括 RDB 和 AOF 两种方式。
文章目录
-
- 一、持久化概述
-
- [1.1 为什么需要持久化?](#1.1 为什么需要持久化?)
- [1.2 持久化方式对比](#1.2 持久化方式对比)
- [二、RDB 持久化](#二、RDB 持久化)
-
- [2.1 配置方式](#2.1 配置方式)
- [2.2 手动触发](#2.2 手动触发)
- [2.3 RDB 文件结构](#2.3 RDB 文件结构)
- [三、AOF 持久化](#三、AOF 持久化)
-
- [3.1 配置方式](#3.1 配置方式)
- [3.2 AOF 重写](#3.2 AOF 重写)
- [3.3 AOF 文件修复](#3.3 AOF 文件修复)
- 四、混合持久化
-
- [4.1 配置方式](#4.1 配置方式)
- [4.2 混合持久化原理](#4.2 混合持久化原理)
- 总结
一、持久化概述
1.1 为什么需要持久化?
Redis 数据存储在内存中
↓
服务器重启/断电
↓
内存数据丢失
↓
需要持久化到磁盘恢复数据
1.2 持久化方式对比
| 方式 | 说明 | 优点 | 缺点 |
|---|---|---|---|
| RDB | 快照 | 文件小、恢复快 | 可能丢失数据 |
| AOF | 日志追加 | 数据完整 | 文件大、恢复慢 |
| 混合 | RDB+AOF | 兼具优点 | 配置复杂 |
二、RDB 持久化
2.1 配置方式
conf
# redis.conf
# 快照条件
save 900 1 # 900秒内至少1个key变化
save 300 10 # 300秒内至少10个key变化
save 60 10000 # 60秒内至少10000个key变化
# RDB文件名
dbfilename dump.rdb
# 存储目录
dir /var/lib/redis
# 压缩
rdbcompression yes
# 校验
rdbchecksum yes
2.2 手动触发
bash
# 同步保存(阻塞)
SAVE
# 异步保存(推荐)
BGSAVE
# 查看最后保存时间
LASTSAVE
2.3 RDB 文件结构
┌─────────────────────────────────────────┐
│ RDB 文件结构 │
├─────────────────────────────────────────┤
│ REDIS (5字节) - 魔数 │
│ 版本号 (4字节) │
│ 数据库数据 │
│ EOF (1字节) - 结束标志 │
│ 校验和 (8字节) │
└─────────────────────────────────────────┘
三、AOF 持久化
3.1 配置方式
conf
# redis.conf
# 启用AOF
appendonly yes
# AOF文件名
appendfilename "appendonly.aof"
# 同步策略
appendfsync always # 每次写入都同步(最安全,最慢)
appendfsync everysec # 每秒同步(推荐)
appendfsync no # 由操作系统决定(最快,不安全)
# 重写配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
3.2 AOF 重写
bash
# 手动触发重写
BGREWRITEAOF
# 重写原理
# 原AOF: SET a 1; SET a 2; SET a 3; INCR a; INCR a
# 重写后: SET a 5
3.3 AOF 文件修复
bash
# 检查AOF文件
redis-check-aof appendonly.aof
# 修复AOF文件
redis-check-aof --fix appendonly.aof
四、混合持久化
4.1 配置方式
conf
# redis.conf (Redis 4.0+)
# 启用AOF
appendonly yes
# 启用混合持久化
aof-use-rdb-preamble yes
4.2 混合持久化原理
┌─────────────────────────────────────────┐
│ 混合AOF文件结构 │
├─────────────────────────────────────────┤
│ RDB格式数据(基础数据) │
│ AOF格式数据(增量数据) │
└─────────────────────────────────────────┘
优点:RDB恢复快 + AOF数据完整
总结
本文我们学习了:
✅ RDB持久化 :快照方式,文件小,恢复快
✅ AOF持久化 :日志追加,数据完整
✅ 混合持久化 :结合两者优点
✅ 配置选择:根据业务需求选择
下篇预告 :Redis 从入门到精通(十二):主从复制
作者 :刘~浪地球
系列 :Redis 从入门到精通(十一)**> 更新时间:2026-04-07