redis事件 - 969251639/study GitHub Wiki

redis基于reactor模式创建了自己的网络事件处理器,称为文件事件处理器

  • 文件事件处理器使用IO多路复用技术监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器
  • 当被监听的套接字准备好执行连接应答(accept),读取(read),写入(write),关闭(close)等操作时,与操作对应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件

文件事件是对套接字操作的一个抽象,每当一个套接字准备好执行连接应答,读取,写入,关闭等操作时就会产生一个文件事件。因为一个服务器通常会连接多个套接字,所以多个文件事件有可能会并发的出现
IO多路复用程序负责监听多个套接字,并向文件事件分派器传送那些产生了事件的套接字

尽管多个文件事件可能会并发的出现,但IO多路复用程序总是会将所有产生事件的套接字都放到一个队列里面,然后通过这个队列有序的且同步的为每一个套接字分派事件,当上一个套接字产生的事件被处理完毕之后,IO多路复用才会继续向文件事件分派器传送下一个套接字。