redis主从复制时主服务器是怎么处理来自其它客户端的写命令

之前看懂了,后来又忘了是怎么回事,特地写下来记录。

1. 当从服务器发送sync命令要求复制主服务器的数据时,主服务器会fork出一个进程用来进行持久化。所以主复制器工作进程不会阻塞,会继续处理来自其它客户端的命令。
2. 此时如果有其它客户端发来写命令,则必然会更改数据集,此时操作系统会fork出一块内存块给持久化进程,这样会保证主进程的内存和子进程的内存互不干扰。该过程对用户透明,有点不太懂,以后会再看看fork的原理。
3. 主进程将写命令记录下来
4. 主进程将持久化得到的文件发给从服务器,并将持久化其它的写命令也发给从服务器。

posted @ 2018-02-09 14:59  好想吃肉  阅读(61)  评论(0)    收藏  举报