redis - 子进程如何更新父进程中的变量?
问题描述
“版本:redis-3.0.2,文件:rdb.c,方法:int rdbSave(char * filename)”,全局变量“服务器”有一些更新操作:
server.dirty = 0;
server.lastsave = time(NULL);
server.lastbgsave_status = REDIS_OK;
我想知道,子进程如何更新父进程中的变量?理论上是不能的。
解决方案
rdbSave 在主事件循环线程的前台运行,因此更新不是由智利进程完成的。
查看 rdbSaveBackground 的 fork 实现。