# RDB 快照

URL: https://caijiao.org/redis/04-persistence/01-rdb
Source: docs/redis/04-persistence/01-rdb.md
Description: RDB 快照是 Redis 的持久化机制之一，通过周期性生成数据快照保存到磁盘，保证数据在服务器重启后可以恢复，适合数据备份和恢复。

RDB（Redis Database）快照是 Redis 提供的持久化方式之一，通过将内存中的数据生成快照文件保存到磁盘，实现数据的持久化备份。

## 工作原理

Redis 会按照配置的触发条件，fork 出一个子进程，子进程负责将当前数据写入一个临时文件，然后替换旧的快照文件 `dump.rdb`，整个过程对主进程无阻塞。

## 配置方式

在 `redis.conf` 文件中配置触发快照的条件：

```txt
save 900 1     # 900秒内如果至少有1个key被修改，就触发快照
save 300 10    # 300秒内如果至少有10个key被修改，就触发快照
save 60 10000  # 60秒内如果至少有10000个key被修改，就触发快照
```

## 快照文件位置

默认快照文件为 `dump.rdb`，存储在 Redis 工作目录（`dir` 配置）下。

## 手动触发快照

可以通过命令手动生成快照：

```bash
SAVE      # 阻塞式保存，主线程等待完成
BGSAVE    # 异步保存，子进程完成后写入文件
```

## 优缺点

- 优点：生成的快照文件体积小，加载速度快，适合做定期备份。
- 缺点：快照之间的修改会丢失，存在数据丢失风险；保存时可能阻塞（SAVE 命令）。

## 应用场景

适合对数据持久化要求不是特别严格的场景，或者结合 AOF 作为混合持久化方案，提高数据安全性和恢复速度。
