关于aof持久化问题

来源:5-3 Redis的AOF持久化详细讲解

慕粉1559449418

2020-12-10

老师你好,aof持久化问题如下:
1、如果同步策略为每次修改同步,那么写命令是否进入缓冲区,还是只要服务端接到写命令并执行后立即写到磁盘aof文件
2、将缓冲区的写命令刷到磁盘的操作是否是在新开的线程上执行的
3、触发aof重写的那两个配置
auto-aof-rewrite-min-size
auto-aof-rewrite-percentage
必须同时配置吗,这两个配置有什么联系
4、关于aof重写,bgrewriteaof会把内存中的数据以rdb的形式放在aof文件中
那所谓的写指令优化也没有体现出来(连续对同一个key进行set那种)
5、如果rdb和aof都开启,优先恢复aof,那redis是否还对rdb进行恢复,这两部分的数据有可能都是一样的
6、如果采用混合模式持久化,aof文件中的头部为rdb数据时,那原来的那个dump.rdb是否还有用,因为aof中已经存在rdb数据了
7、关于bgsave、aof持久化、aof重写、缓存淘汰是不是都开启一个新的线程来处理

写回答

2回答

慕粉1559449418

提问者

2020-12-13

谢谢老师的解答

1
0

InCowboy

2020-12-13

1、Redis每次都是先将命令放到缓冲区,然后根据具体策略(每秒/每条指令/缓冲区满)进行刷盘操作。

2、是的

3、auto-aof-rewrite-min-size 64mb # 当前aof文件大于多少字节后才触发,aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小 auto-aof-rewrite-percentage)

4、重写会创建一个当前 AOF 文件的体积优化版本,你自己测试测试是可以的。

5、恢复AOF的,RDB与AOF同时开启 默认加载AOF

6、混合模式的作用是为了防止数据丢失,又能快速恢复数据。RDB文件一般我们也不会删除。

7、是的

1
0

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程