Redis:RDB 中 fork 的使用

Redis 的 RDB 后台 save ( BGsave ) 是使用了无参的 fork 的,所以会拷贝当前进程,也就是父进程的目录表和页面表

并且使用 COW 。值得注意的是 fork 之后,并没有调用 exec,所以子进程不需要另立门户,设置自己的新的,空的目录表和页面表。

而是用和父进程用有相同内容的(注意不是同一份)。于是,如果父进程在子进程执行BGsave的过程中,使用了写操作的话,写某个页的话,会使得操作系统分配新的

物理页给父进程。比如执行了 rehash。

 

 

 

posted @ 2021-01-28 13:02  执生  阅读(1174)  评论(0编辑  收藏  举报