前置学习:Redis server启动源码-CSDN博客
1、Redis服务器启动的时候就会就一直在轮询。
// 运行事件处理器,一直到服务器关闭为止
aeSetBeforeSleepProc(server.el,beforeSleep);
aeMain(server.el);// 服务器关闭,停止事件循环
aeDeleteEventLoop(server.el);/** 事件处理器的主循环*/
void aeMain(aeEventLoop *eventLoop) {eventLoop->stop = 0;while (!eventLoop->stop) {// 如果有需要在事件处理前执行的函数,那么运行它if (eventLoop->beforesleep != NULL)eventLoop->beforesleep(eventLoop);// 开始处理事件aeProcessEvents(eventLoop, AE_ALL_EVENTS);}
}
2、Redis使用的是Reator单线程模型,连接事件、写事件、读事件