AOF

RDB 存在的问题

  • 耗时
  • 耗性能

什么是 AOF

  • 客户端执行的每条命令都会写在 AOF 文件中;
  • 当发生宕机时,通过载入 AOF 文件恢复数据;

AOF 三种策略

always
  • 客户端执行的命令会存入缓冲区,always 策略会使命令一到缓冲区就写入磁盘;
  • 优点:不丢数据;
  • 缺点:IO 开销大;
everysec(默认)
  • 每秒将缓冲区的命令写入磁盘;
  • 优点:减少 IO;
  • 缺点:丢 1s 数据;
no
  • 操作系统决定什么时候把缓存中的数据刷入硬盘;
  • 优点:不用自己管;
  • 缺点:不可控;

AOF 重写

  • 把过期的数据丢弃;
  • 把重复的数据合并成最新值;
  • 减少磁盘占用量;
  • 加速恢复速度;

两种实现 AOF 重写的方式

bgrewriteaof
  • 客户端发起,fork 出一个子进程,完成对 AOF 文件的整合;
AOF 重写配置
  • auto-aof-rewrite-min-size AOF 文件重写需要到达的大小;
  • auto-aof-rewrite-percentage AOF 文件增长率,增长到这个比例就重写;
  • aof_current_size 实时记录 AOF 当前尺寸(单位:字节);
  • aof_base_size AOF 上次启动和重写的尺寸(单位:字节);

AOF 相关配置

  • appendonly yes
  • appendfilename "appendonly-${port}.aof"
  • appendfsync everysec
  • dir /bigdiskpath
  • no-appendfsync-on-rewrite yes 在 AOF 重写时,不做正常的 rewrite 操作;
  • auto-aof-rewrite-percentage 100
  • auto-aof-rewrite-min-size 64mb
  • aof-load-truncated yes
03-19
### Redis AOF 持久化配置与使用 #### 什么是AOF持久化? AOF(Append Only File)是Redis的一种持久化机制,它通过记录服务器接收到的每一个写操作命令来实现数据的持久性。当Redis重启时,可以通过重新执行这些命令来重建整个数据集的状态[^3]。 #### AOF持久化的启用方法 要启用AOF持久化功能,在Redis配置文件`redis.conf`中设置以下参数: ```conf appendonly yes ``` 保存配置文件并退出编辑器后,需重启Redis服务以使更改生效[^1]。 #### AOF持久化的基础流程 AOF持久化的核心在于将每次写入操作追加到日志文件中。以下是其工作原理的关键点: - **写入过程**:每当有新的写命令到达时,Redis将其附加到内存缓冲区。 - **同步策略**:通过`appendfsync`选项控制如何以及何时将缓冲区的内容刷新到硬盘上。可选值包括 `always`, `everysec`, `no`[^2]。 - `always`: 每次写入都会立即刷盘,性能最低但最安全; - `everysec`: 默认推荐模式,每秒刷盘一次,兼顾性能安全性; - `no`: 完全依赖操作系统决定何时刷盘,可能丢失较多数据。 #### 配置示例 下面是一个典型的AOF相关配置片段: ```conf # 启用AOF持久化 appendonly yes # 设置AOF文件路径 (默认为 appendonly.aof) appendfilename "appendonly.aof" # 控制AOF文件同步频率 appendfsync everysec # 自动重写条件 auto-aof-rewrite-min-size 64mb auto-aof-rewrite-percentage 100 ``` 上述配置表示开启AOF持久化,并指定每秒钟同步一次数据至磁盘;同时定义了触发AOF重写的最小尺寸及增长比例阈值[^4]。 #### AOF的优点与适用场景 相比另一种常见的RDB持久化方式,AOF具有更高的可靠性,因为它逐条记录所有的修改指令,即使发生意外宕机也能最大程度减少数据损失。然而,这也使得AOF文件通常较大,因此适合对数据完整性要求较高的应用环境。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值