黑猴子的家:Redis 持久化 之 AOF

本文深入解析Redis的AOF持久化机制,包括其工作原理、配置方法、与RDB的对比,以及AOF文件的备份与恢复策略。文章还提供了从RDB平滑过渡到AOF的步骤,并探讨了AOF的同步频率设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOF 是增量备份,占用空间比RDB要大,恢复数据要比RDB慢很多,把全部命令记录执行一遍

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

1、AOF默认不开启,需要手动在配置文件中配置

 

9193428-6c3b82505644ee52.png


开启AOF

 

[root@hadoop102 myredis]# vim redis.conf
appendonly yes

9193428-f6198fba36a4523d.png

2、可以在redis.conf中,配置文件名称,默认为 appendonly.aof

9193428-ff0e498d0aa14c30.png

[root@hadoop102 myredis]# vim redis.conf
##AOF文件的保存路径,同RDB的路径一致
dir "/opt/module/myredis/"
appendfilename "appendonly.aof"
dbfilename dump.rdb

3、AOF 小案例

https://www.jianshu.com/p/f40b4e091a85

4、RDB 转 AOF 错误操作案例

https://www.jianshu.com/p/858cb36974ba

5、如何正确 RDB 转 AOF 呢?

https://www.jianshu.com/p/1eb8dea15624

6、AOF文件故障备份

(1)AOF的备份机制和性能虽然和RDB不同, 但是备份和恢复的操作同RDB一样,都是拷贝备份文件,需要恢复时再拷贝到Redis工作目录下,启动系统即加载。

[root@hadoop102 myredis]# cp appendonly.aof appendonly.aof20181010bak
[root@hadoop102 myredis]# cp dump.rdb dump.rdb20181010bak

(2)AOF和RDB同时开启,系统默认取AOF的数据

7、AOF文件故障恢复

(1)AOF文件的保存路径,同RDB的路径一致。

(2)如遇到AOF文件损坏
可通过 redis-check-aof --fix appendonly.aof 进行恢复

//修复AOF
[root@hadoop102 redis-3.2.5]# redis-check-aof --fix appendonly.aof

//不保存退出 用于rdb模式切换 AOF 模式
[root@hadoop102 redis-3.2.5]# shutdown nosave 

//将RDB数据,重写到AOF里面
[root@hadoop102 redis-3.2.5]# bgrewriteaof

9193428-7f8ddaeb7498aaa0.png

8、rdb 转 aof 正确做法

停机重启做法
先把rdb通过下面的命令(bgrewriteaof) 生成相对应的aof ,在改配置文件,重启
做之前,数据最好先备份

127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
127.0.0.1:6379>

不停机做法

127.0.0.1:6379> config get *

9193428-c89b2739a5a73d43.png

127.0.0.1:6379> bgrewriteaof
127.0.0.1:6379> config set appendonly "yes"

防止以后重启,动态修改rdb转aof后修改配置文件

[root@hadoop102 redis-3.2.5]# vim myredis/redis.conf
appendonly  yes

9、AOF同步频率设置

始终同步,每次Redis的写入都会立刻记入日志
每秒同步,每秒记入日志一次,如果宕机,本秒的数据可能丢失。
把不主动进行同步,把同步时机交给操作系统

 

9193428-802cc9b4cbe20af1.png

9193428-0ff69e5d038b2748.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值