作者:吴之薇_1989_l5g_112 | 来源:互联网 | 2023-08-11 18:22
redis aof 重写的时候,主线程依然可以进行写操作,并把写操作记录到重写缓冲区,以便重写完成后,更新重写期间改变的数据。
不是很清楚 redis aof 重写(不起用混合持久化)的具体流程
我的疑问是会不会出现下面的情况:
重写开始的时候,内存中某个键 A 的值是 1,然后有一条命令把它+1,改成了 2,并且这条命令也写到了重写缓冲区,但是此时这条数据还没有被重写到新的 aof 文件。等重写过程已经遍历完整个内存中的数据,此时键 A 的值是 2,开始读取重写缓存中的命令时,会不会被+1 的命令重新修改变成 3
重写都是单独 fork 进程处理的,和当前数据完全是隔离独立的,而且这个地方说的是重写过程中写指令追加到重写缓冲区,重写完成后再追加到重写文件,数据操作早就完成