Redis 源码研究(一) - AE 事件库概述
简介
AE 事件库是 Redis 用来处理 IO 事件的库,根据系统的不同选用尽可能高效率的 IO 实现,在 ae.c
中使用条件编译根据系统支持的多路复用器(multiplexing)来选用相应的文件,其按优先级排序为:
- evport -
ae_evport.c
- epoll -
ae_epoll.c
- kqueue -
ae_kqueue.c
- select -
ae_select.c
在各个源文件中实现了 ae 库基本操作的统一接口,使得实际的实现代码得以相同。
在本次分享中,我准备先对 ae.h
进行阅读,也即大概了解 ae 事件库完成后所提供的接口,然后对 ae_epoll.c
的 api 实现进行阅读。
在文末我也简单总结了我个人从这两个文件所看出的事件库的设计。