Redis Reactor事件驱动模型源码

 前置学习: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单线程模型,连接事件、写事件、读事件

你可能感兴趣的:(Redis,redis)