日期:2014-05-16 浏览次数:20591 次
在上一篇博文中说到了在Redis 的事件处理中使用到了底层的linux epoll,根据Redis的实现可以使用其他的多路通信层,但是在一般的linux服务器中使用的最多的还是epoll所以这里主要介绍一下epoll。Redis并没有直接的使用linux的epoll而是对其进行了一个简单的封装。
ae_epoll.c
在原有的linux epoll的基础上进行封装,主要封装了一下几个函数:
aeApiCreate:调用epoll_create创建epoll的句柄,并分配epoll事件。
aeApiFree:调用close关闭epoll_create创建的epoll句柄,并释放epoll事件。
aeApiAddEvent:调用epoll_ctl向aeEventLoop中添加一个事件。
aeApiDelEvent:调用epoll_ctl从aeEventLoop中删除一个事件。
aeApiPoll:调用epoll_wait等待事件。
具体的关于epoll的介绍可以参见博文:点击打开链接