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

相关推荐
正在走向自律2 小时前
深度剖析 KES 行标识体系:OID 与 ROWID 核心原理、实战案例及性能优化
数据库·oid·kes·rowid
一直都在5722 小时前
MySQL索引优化
android·数据库·mysql
wjp@0013 小时前
SQL server导出导入数据
运维·服务器·数据库
脑子加油站3 小时前
MySQL8数据库高级特性
数据库·mysql
chxii3 小时前
Nginx的缓存配置--客户端缓存 (Browser Caching)和代理服务器缓存 (Proxy Server Caching)
nginx·缓存
REDcker3 小时前
OpenSSL:C 语言 TLS 客户端完整示例
c语言·网络·数据库
zly35003 小时前
centos7 mysql 无法被远程连接
数据库·mysql
廿一夏3 小时前
MySql的增删改查
数据库·mysql·dba
瀚高PG实验室3 小时前
HGDB 4.5.8.8开启oracle兼容执行带聚合函数的SQL导致数据库进程被信号11杀死
数据库·sql·oracle·瀚高数据库