事件分为文件事件和时间事件
例如set,get等属于文件事件,而定时任务和轮询等操作属于时间事件
redis为文件事件定义了很多处理器,如连接应答处理器,相应处理器等等。其实这些处理器就是实现对客户端的不同请求进行应答。
当客户端连接服务器时,产生的时AE_READABLE事件,而当服务器对客户端进行回送时,执行的是AE_WRITEABLE事件
文件处理器由上述部分组成。套接字是客户端对服务端进行连接的地方,它们之间使用TCP连接。
I/O多路复用负责将套接字---即客户端产生的请求放进一个队列里。在这里提一句,所有的请求都是有序的,原子的。服务器一次只能处理一个请求。
而文件事务分派器,说白了就是根据文件请求的不同而调用响应的服务器。如SET就调用string对应的方法(感觉就是if判断。。。。。)
关于AE_READABLE和AE_WRITEABLE:
其实不用过多思考:
当客户端向服务器发请求时就是readable
而命令回复时就是writeable