Redis事件机制

database

Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:

  • 文件事件:Redis通过套接字与客户端连接,文件事件是服务器对套接字操作的抽象。
  • 时间事件:Redis服务器中的一些操作需要给定的时间点执行,时间事件时对这类定时操作的抽象。

文件事件

文件事件处理器使用I/O多路复用同时监听多个套接字。

文件事件处理器的构成

文件事件处理器的四个组成部分:套接字、I/O多路复用程序、文件事件分派器以及事件处理器。

文件事件是对套接字操作的抽象,每当一个套接字准备好执行连接应答(accept)、写入、读取、关闭等操作

时,就会产生一个文件事件。一个服务器会连接多个套接字,所以多个文件事件可能并发出现。

I/O多路复用程序负责监听多个套接字。尽管会并发,但是产生事件都放到一个队列里,以有序、同步、每次一个

套接字的方式向分派器传送套接字。

I/O多路服用程序的实现

通过包装select、epoll、evport和kqueue这些函数库来实现的。提供相同的API,可以互换。

文件事件的处理器

连接应答器

请求处理器

命令回复器

复制处理器

时间事件

未完待续

Reference

《Redis设计与实现》

以上是 Redis事件机制 的全部内容, 来源链接: utcz.com/z/535981.html

回到顶部