《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件

发布时间:2023-04-25 10:00

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第1张图片Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 

文件事件:Redis服务器通过套接字与客户端(或者其他redis服务器)连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通新会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。

时间事件:redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。

目录

1、文件事件

1.1文件事件处理器的构成

1.2I/O多路复用程序的实现 

1.3事件类型

1.4API

1.5文件事件的处理器

1.5.1连接应答处理器

1.5.2命令请求处理器

1.5.3命令回复处理器 

2、时间事件

2.1实现

​ 2.2API 

2.3时间事件的应用:serverCron函数

3、事件的调度与执行


1、文件事件

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第2张图片

1.1文件事件处理器的构成

文件处理器的四个组成部分:套接字、I/O多路复用程序、文件事件分派其、事件处理器《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第3张图片

 《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第4张图片

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第5张图片 

1.2I/O多路复用程序的实现 

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第6张图片《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第7张图片

1.3事件类型

 《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第8张图片

1.4API

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第9张图片

1.5文件事件的处理器

redis为文件事件编写了多个处理器,这些事件处理器分别用于实现不同的网络通信需求:《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第10张图片

1.5.1连接应答处理器

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第11张图片《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第12张图片 

1.5.2命令请求处理器

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第13张图片 《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第14张图片

1.5.3命令回复处理器 

 《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第15张图片

2、时间事件

redis的时间事件分为以下两类: 

一个时间事件主要由以下三个属性组成:《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第16张图片 

一个时间事件是定时事件还是周期性事件取决于时间事件处理器的返回值:《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第17张图片 

目前版本的redis只使用周期性事件,而没有使用定时事件。

2.1实现

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第18张图片 2.2API 

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第19张图片 

2.3时间事件的应用:serverCron函数

《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第20张图片 

3、事件的调度与执行

因为服务器中同时存在文件事件和时间事件两种事件,所以服务器必须对这两种事件进行调度,决定何时应该文件事件,何时应该处理时间事件,以及花多少时间来处理它们。《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第21张图片 

 《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件_第22张图片

 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号