Redis 从入门到精通(十一):持久化配置

系列导读:本篇将深入讲解 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

相关推荐
難釋懷4 分钟前
Nginx代理https请求
redis·nginx·https
会编程的土豆5 分钟前
数据库mysql八股
数据库·笔记·八股
nVisual21 分钟前
巡检任务与工单闭环方案
运维·服务器·数据库·数据中心基础设施
承渊政道38 分钟前
从设备数据到AI洞察:时序数据的多模融合实践
数据库·人工智能·性能优化·金仓数据库·多模融合
科技圈快迅1 小时前
2026年数据库国产化替代性能调优方法论:从SQL基线建立到持续优化的全流程体系
数据库·sql
你有我备注吗1 小时前
SQL之数据更新
数据库·sql
跨境技工小黎1 小时前
动态住宅代理使用指南:粘性会话 vs. 每次请求轮换 IP,如何选择?
数据库
AAA@峥2 小时前
系统化学习 MySQL:数据类型、库表管理、增删改查全解析
数据库·学习·mysql
流星白龙9 小时前
【Redis】2.Redis重大版本
数据库·redis·junit
流星白龙9 小时前
【Redis】7.Hash表
数据库·redis·哈希算法