1.文件事件:使用i/o多路复用
- 假设一个redis客户端发起连接,那么监听嵌套字将产生AE_READABLE事件,触发应答处理器,处理器对客户端的连接请求进行应答,然后创建客户端嵌套字及客户端状态,并将嵌套字的AE_READABLE事件与命令请求处理器关联,然后客户端向服务器发送命令请求(嵌套字)
- 当客户端尝试读取命令回复时,触发命令回复处理器,当命令客户端嵌套字的AE_WRITABLE事件。当命令回复处理器将命令全部写入到嵌套字后,服务端与嵌套字解绑
此时若有多个客户端,那么并发下如何处理:
尽管多个文件事件可能会并发出现,但是I/O多路用会将所有的嵌套字放入一个队列中,每次处理一个,处理完毕再处理另一个。
时间事件分为定时事件和周期性事件:定时事件只在指定时间内到达一次,周期性事件则每隔一段事件到达一次