# AOF 机制

URL: https://caijiao.org/redis/04-persistence/02-aof
Source: docs/redis/04-persistence/02-aof.md
Description: AOF（Append Only File）是 Redis 的持久化机制，通过记录所有写操作日志实现数据持久化，提供更高的数据安全性和恢复能力。

AOF（Append Only File）是 Redis 的另一种持久化方式，它通过将所有写命令追加到日志文件中，确保数据的完整恢复。

## 工作原理

Redis 将所有对数据库的写操作（如 SET、DEL 等）以命令形式追加写入 AOF 文件。当 Redis 重启时，AOF 文件会被重新执行以恢复数据。

## 配置方式

在 `redis.conf` 中启用并配置 AOF：

```txt
appendonly yes                # 开启 AOF 持久化
appendfilename "appendonly.aof" # AOF 文件名
```

## 同步策略

- `appendfsync always`：每次写操作都同步写入磁盘，数据安全最高，但性能最低。
- `appendfsync everysec`：每秒同步一次，性能和安全性折中，默认推荐。
- `appendfsync no`：完全依赖操作系统刷新，性能最好但数据安全最低。

## 重写机制（AOF Rewrite）

随着写操作增多，AOF 文件会越来越大。Redis 支持后台自动重写 AOF 文件，生成最小化的新文件，减少文件体积，提高加载速度。

## 优缺点

- 优点：持久化粒度细，数据安全性高，能最大限度减少数据丢失。
- 缺点：AOF 文件相对 RDB 更大，写入性能略低于 RDB。

## 应用场景

适用于对数据安全要求高、不能容忍大量数据丢失的场景，通常与 RDB 结合使用，实现高效且安全的持久化方案。
