redis学习十五:redis持久化之AOF

发布时间 2023-07-03 11:08:21作者: 浮笙芸芸

1.AOF是什么

以日志的形式来记录每个写操作,将redis执行过的所有写指令记录下来(读操作不记录),

redis重启的话会根据日志内容把指令从前到后执行一次来完成数据的恢复工作。

默认情况,redis没有开启AOF更,开启功能需要设置appendonly yes

 aof保存的是appendonly.aof文件

2.AOF持久化工作流程

(1)client作为命令的来源,会有多个源头以及源源不断的请求命令

(2)这些命令并不是直接写入AOF文件,是先放入AOF缓存中进行保存,这里的AOF缓冲区实际上是内存中的一片区域

存在的目的是当这些命令达到一定量以后再写入磁盘,避免频繁的磁盘IO操作

(3)AOF缓冲会根据AOF缓冲区同步文件的三种写回策略将命令写入磁盘上的AOF文件。

(4)随着写入AOF内容的增加为避免文件膨胀,会根据规则进行命令的合并(AOF重写)从而起到AOF文件压缩的目的

(5)当redis server服务器重启的时候会从AOF文件载入数据

3.AOF三种写回策略

(1)always 同步写回,每个写命令执行完同步将日子写回磁盘

(2)everysec 默认策略,每秒写回,每个写命令执行完,只是先把日志写到aof文件内存缓冲区,每隔一秒把缓冲区内容写进磁盘

 (3)no 每个写命令执行完,只是把日志写到aof文件的内存缓冲器,由操作系统决定何时将缓冲区内容写回磁盘

4.AOF案例演示

配置:

(1)开启aof

 (2)默认每秒写回策略

(3)保存路径

redis6保存路径和rdb保存路径一样

redis7之后创建个文件夹appednonlydir,然后在这个文件夹里有对应.aof文件

 (4)保存名称

redis6有且仅有一个

redis7之后multi part AOF :

基本文件appendonly.aof.1.base.rdb

增量文件appendonly.aof.1.incr.aof

清单文件appendonly.aof.manifest