Redis中的单线程模型


Redis基于Reactor模式开发了自己的网络事件处理器,称之为 文件事件处理器(File Event Hanlder)

  • 文件事件处理器由Socket、
  • IO多路复用程序
  • 文件事件分派器(dispather)
  • 事件处理器(handler)

文件事件处理器模型

在这里插入图片描述
IO多路复用程序会同时监听多个socket,当被监听的socket准备好执行accept、read、write、close等操作时,与这些操作相对应的文件事件就会产生。IO多路复用程序会把所有产生事件的socket压入一个队列中,然后有序地每次仅一个socket的方式传送给文件事件分派器,文件事件分派器接收到socket之后会根据socket产生的事件类型调用对应的事件处理器进行处理。

文件事件处理器分为几种:

  • 连接应答处理器:用于处理客户端的连接请求;
  • 命令请求处理器:用于执行客户端传递过来的命令,比如常见的set、lpush等;
  • 命令回复处理器:用于返回客户端命令的执行结果,比如set、get等命令的结果;

事件种类:

  • AE_READABLE:与两个事件处理器结合使用

猜你喜欢

转载自blog.csdn.net/uniquewonderq/article/details/129811778