24.AOF重写指令是什么?为什么要重写?嘻哈的简写笔记——Redis

重写指令bgrewriteaof #指令:触发AOF 重写
bgrewriteaof 指令就是依据现在的数据重写AOF的存储文件,也就是appendonly.aof文件;

~如何做的呢?当输入指令的时候,主线程会开启一个子进程;子线程会将数据转为指令存到AOF临时存储文件中;但他不会立即把临时文件替换掉原来的文件,因为,现在的主线程还在继续的进行读写,如果换了会导致数据不准确;所以,他不会;主线程把它开启子线程之后读写的数据写在了缓存里,然后把缓存里的数据给加在子线程创建的临时文件里;然后再由主线程把临时文件给替换掉原来的文件;为什么要由主线程进行替换呢?因为,这个时候主线程要停下来,不能再进行读写操作,再进行读写操作,数据就又会不准确了;所以主线程来做这个,其他工作先停下,可以防止数据不准确;其实除了第2步其他步骤都是主线程来做的;
24.AOF重写指令是什么?为什么要重写?嘻哈的简写笔记——RedisRedis3.0之后的更新,新版本更新之后呢,子线程创建的那个临时AOF文件不再是写指令了;而是
借鉴了RDB文件
格式**进行存储;可以有效地进行压缩空间;所以重写之后的文件我们就看不懂了(成了乱码喽);
**重写的意义:**可以进行统一整理空间,减少存储空间的使用;

。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。