Redis服务器是一个事件驱动程序,服务器需要处理两类事件:
文件事件:
文件事件就是服务器对套接字(socket)操作的抽象,服务器和客户端的通信会产生文件事件
时间事件:
时间事件就是服务器对定时操作(比如serverCron函数)的抽象,Redis服务器中的一些操作需要在给定的时间点执行
一,文件事件
文件事件处理程序是基于Reactor的网络通信程序,是对套接字操作的抽象,每当套接字变成可应答、可读、可写的时候,相应的文件事件就会产生。
1.文件事件处理器的组成
套接字
IO多路复用程序:
负责监听多个套接字,并向文件事件分派器传送产生了事件的套接字。
由于文件事件可能并发的出现,所以IO多路复用程序会把所有产生事件的套接字放到一个队列里,然后通过这个队列,以有序,同步,每次一个套接字的方式向文件事件分派器传送套接字。当上一个套接字产生的事件被处理完才传送下一个套接字
文件事件分派器:
接收IO多路复用程序传来的套接字,并
事件处理器