美文网首页
Redis文件事件

Redis文件事件

作者: lintong | 来源:发表于2015-03-11 15:35 被阅读144次

    概要:

    Redis的服务器本质上是一个事件驱动程序,其中很重要的一类事件就是对客户端的响应,Redis将服务器与客户端的套接字操作抽象为文件事件
    Redis以单线程方式运行,所以为了保证高效必须采用IO多路复用的方式,而且Redis还自己实现了基于Reactor模型的网络事件处理器。

    Redis文件事件的构成

    1:套接字
    2:IO多路复用库
    3:事件分派器
    4:事件处理器

    1:套接字
    每个客户端通过套接字连接到服务器上,而服务器给套接字关联不同的事件处理器(所谓的事件处理器即一个处理函数,当客户端产生不同的事件的时候就会调用这些事件进行处理)。
    2:IO多路复用
    redis的IO多路复用就是封装了epoll,kqueue等IO多路复用库来实现,通过对这些库的抽象,从而可以任意替换。
    3:事件类型
    IO多路复用一共处理两类事件(ae_readable, ae_writeable),即事件类型是由服务器端角度来看的。
    1:当客户端连接到服务器(connect)或者是写入命令(write)即触发读事件。
    2:当客户端对套接字执行read操作,即触发写事件。

    那么有多少种事件处理器呢?
    1:应答事件处理器
    该处理器用于服务器对客户端应答操作,即对accept函数的包装。
    2:命令请求处理器
    当客户端发送命令,会触发命令请求处理器,服务器后台执行命令。
    3:命令回复处理器
    当服务器处理好请求命令,当客户端调用read函数,触发writeable事件,调用该处理器处理。

    相关文章

      网友评论

          本文标题:Redis文件事件

          本文链接:https://www.haomeiwen.com/subject/ygfbxttx.html