事件
-
文件事件:Redis服务器通过套接字与客户端进行连接,文件事件就是服务器对套接字的抽象操作。
-
文件事件处理器:使用I/O多路复用程序同时监听多个套接字,并根据套接字执行的任务关联不同的事件处理器。以单线程的方式运行,即实现了高性能的网络通信模型,也很好的与Redis服务器中其他单线程运行的模块进行对接,保持Redis内部单线程设计的简单性。
-
文件事件处理器的构成:套接字、I/O多路复用程序、文件事件分派器、事件处理器。
套接字负责准备好执行通信的操作。
I/O多路复用程序负责监听多个套接字,并向文件事件分派器传送套接字,它将产生事件的套接字放到一个队列中,有序同步地向文件事件分派器传送套接字。
文件事件分派器接受套接字并产生事件的类型,调用事件处理器。事件处理器用来处理不同的套接字操作。 -
文件事件处理器
-
时间事件:一些操作需要在给定的时间点执行,时间事件就是服务器对定时操作的抽象。
-
时间事件分为定时事件(指定时间之后执行一次)和周期时间(每隔一段时间执行一次)
-
时间事件的实现:服务器将所有时间事件都放在一个无序链表中, 每当时间事件执行器运行时,它就遍历整个链表,查找所有已到达的时间事件,并调用相应的事件处理器。<