关于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
谢谢老师的解答
10 -
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、是的
10
相似问题