1 RDB
1.1 RDB 是什么
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。
1.1 开启关闭RDB
默认开启
关闭:
方法一:通过配置文件永久关闭
-
找到Redis配置文件
路径通常为:/etc/redis/redis.conf或/etc/redis.conf(具体路径取决于安装方式)。 -
修改RDB相关配置
在配置文件中找到以下参数并修改:# 禁用所有RDB快照(保存条件) save "" # 可选:关闭RDB相关功能(根据需求选择) stop-writes-on-bgsave-error no # 禁止因RDB错误停止写入 rdbcompression no # 关闭RDB压缩(可选) rdbchecksum no # 关闭RDB校验和(可选) -
重启Redis服务
sudo systemctl restart redis # 系统服务方式 # 或 redis-cli shutdown && redis-server /etc/redis/redis.conf # 手动重启
方法二:通过命令临时关闭(无需重启)
如果Redis配置支持动态修改(需确认redis.conf中protected-mode和权限设置),可直接运行:
redis-cli CONFIG SET save ""
验证是否关闭成功
-
检查RDB文件是否停止生成:
默认路径为/var/lib/redis/dump.rdb,若未生成新文件则表示关闭成功。 -
查看Redis配置:
redis-cli CONFIG GET save输出应为
save ""。
1.2 RDB触发机制
1.2.1 手动触发

1.2.2 自动触发机制
Redis内部有触发RDB的机制,可以在redis.conf文件中找到,格式如下

1.3 RDB 执行原理
bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据。完成fork后读取内存数据并写入 RDB 文件。fork采用的是copy-on-write技术:
- 当主进程执行读操作时,访问共享内存;
- 当主进程执行写操作时,则会拷贝一份数据,执行写操作。

1.4 RDB记的快照内容
- 写入时机:RDB 文件仅记录 BGSAVE 执行前的内存快照。
- 后续写操作:BGSAVE 期间的写操作不会写入当前 RDB 文件,但会保留在内存中,供后续的 RDB 快照或 AOF 日志记录。
2 AOF
2.1 AOF 是什么
AOF全称为Append Only File(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。
2.2 开启关闭AOF
AOF默认是关闭的,需要修改redis.conf配置文件来开启AOF:

AOF文件一般存储在redis服务器的工作目录下,文件名为 appendonly.aof。
2.3 AOF 触发机制[刷盘机制]
AOF的命令记录的频率也可以通过redis.conf文件来配:


2.4 AOF 重写机制
因为是记录命令,AOF文件会比RDB文件大的多。而且AOF会记录对同一个key的多次写操作,但只有最后一次写操作才有意义。
2.4.1 手动执行命令
通过执行bgrewriteaof命令,可以让AOF文件执行重写功能,用最少的命令达到相同效果。

2.4.2 自动执行机制
Redis也会在触发阈值时自动去重写AOF文件。阈值也可以在redis.conf中配置:

自动AOF重写的触发需要同时满足以下两个条件:
- AOF文件当前大小 > auto-aof-rewrite-min-size
(例如:当前AOF文件必须大于64MB)。 - AOF文件当前大小 > 上一次重写后AOF文件大小 × (1 + auto-aof-rewrite-percentage / 100)
(例如:当前大小需超过上一次重写后大小的2倍,即增长100%)。
3 RDB 与 AOF 对比

4 混合模式
同时开启时的行为:
- Redis 重启时会优先使用 AOF 文件恢复数据,因为 AOF 通常包含更完整的操作日志。
- 若 AOF 被禁用或损坏,才会回退到 RDB 快照(如 dump.rdb)。
5 适用场景
同时开启 RDB + AOF:
- 适合对数据完整性要求高的场景(如电商订单、金融数据),需兼顾恢复速度和实时性。
仅使用 RDB:
- 适合缓存或数据分析场景,对数据持久性要求较低,但需快速恢复。
仅使用 AOF:
- 适合需要严格保证数据不丢失的场景(如支付系统),但需接受较长的恢复时间。
本文介绍了Redis持久化的两种方式:RDB和AOF。RDB是默认方案,在指定时间和写操作次数下将数据写入磁盘;AOF则是将写指令追加到文件。文中详细阐述了两者的配置、创建、恢复、触发机制、优缺点等,还给出了操作演示,并对如何选择持久化方式提供了建议。
232






