Redis 的事件
Redis 的事件
Redis 服务器是一个事件驱动程序,服务器需要处理两类事件:
文件事件:redis 服务器通过套接字与客户端连接,文件事件是服务器对套接字的操作。服务器与客户端的通信会产生文件事件,服务器通过监听并处理这些事件来完成一系列网络通信操作
时间事件:reids 服务器的一些操作就是在给定时间点执行的,这就是时间事件。
文件事件
Redis 基于 Reactor 模式开发自己的网络事件处理器:文件事件处理器
文件事件处理器使用 io 多路复用程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器
当被监听的套接字准备好执行连接应答、读取、写入、关闭等操作时,与操作相对应的文件事件就会生成,文件事件处理器调用套接字之前关联好的事件处理器来调用这些事件。
文件事件处理器通过使用 io 多路复用程序来监听多个套接字
文件处理器分为四个部分:套接字、io 多路复用程序、文件事件分派器、事件处理器。
每当一个套接字准备好执行连接应道、写入、读取、关闭等操作时,就会产生一个文件事件。因为一个服务器通常会连接多个套接字,所以多个文件事件可能并发出现。
io 多路复用程序负责监听多个套接字,并向文件事件派发器传送那些产生事件的套接字。
io 多路复用程序会将所有产生事件的套接字放在一个队里中,通过排队,有序同步,文件事件派发器传送套接字。上一个套接字处理完后,才会执行下一个套接字
文件事件派发器接收 io 多路复用程序传来的套接字,根据套接字产生的事件的类型调用相应的事件处理器。
版权声明: 本文为 InfoQ 作者【周杰伦本人】的原创文章。
原文链接:【http://xie.infoq.cn/article/bf78accefa0b347dfb3a4414f】。文章转载请联系作者。
评论