Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

Redis---事件

简介

Redis服务器是一个事件驱动的程序,主要处理两类事件:文件事件和时间事件。

文件事件

是服务器对套接字操作的抽象。

  • accept
  • read
  • write
  • close

文件事件处理器

介绍

基于Reactor模式,单线程方式运行,采用I/O多路复用来同时监听多个套接字,并根据任务的类型关联不同的事件处理器。

结构图

image.png

多路复用器:监听多个套接字。
套接字队列:使多个套接字有序的传送给分派器。
事件分派器:根据事件的类型调用对应的事件处理器。

时间事件

是服务器对定时操作的抽象。
作用:

  • 清理过期键
  • 更新服务器各种统计信息(时间、内存占用等)
  • 关闭和清理连接失效的客户端
  • ......

时间事件处理器

服务器将所有的时间事件放在一个无序链表中,时间事件处理器运行时,遍历整个链表,查找所有已到达的时间事件,并调用相应的事件处理器。

运行流程

从事件处理的角度看,Redis的运行流程如下:
image.png