400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

redis事件处理流程的案例分析-创新互联

这篇文章主要介绍了redis事件处理流程的案例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联公司是一家专业从事成都网站设计、成都网站制作的网络公司。作为专业网络公司,成都创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、网络营销推广及网站设计开发服务!

前言:

我们知道redis服务器是一个事件驱动程序,它需要处理两类事件,分别是文件事件和时间事件。

那么redis事件处理流程是什么样的呢?我们一起来看看下面的图:

redis事件处理流程的案例分析

aeMain函数通过调用aeProcessEvents函数来进行文件事件和时间事件的调度和执行。aeEventLoop中记录了事件相关的信息。首先通过aeSearchNearestTimer函数获取短的时间事件的执行时间间隔n,然后调用aeApiPoll函数获取监听到的套接字,最后执行与套接字向对应的事件处理函数rfileProc和wfileProc,最后再执行时间事件函数processTimeEvents

文件事件

Redis的基于Reactor模式开发了自己的网络事件处理器,这个处理器被称为文件事件处理器(file event handler):

文件事件处理器的构成

(学习视频分享:redis视频教程)

redis事件处理流程的案例分析

文件事件的处理器

Redis为文件事件编写了多个处理器:

一次完整的客户端与服务端连接事件

时间事件

Redis的时间事件分为定时事件和周期性事件。一个时间事件由三个属性组成:

id:服务器为时间时间创建的全局IDwhen:记录了时间时间的到达时间(毫秒精度的UNIX时间戳)timeProc:时间事件处理器

redis事件处理流程的案例分析

服务器所有的时间事件都放在一个无序链表中,每当时间事件执行器运行时,它就遍历整个链表,查找所有已到达的时间事件,并调用相应的事件处理器。正常模式下的Redis服务器只使用serverCron一个时间事件,而在benchmark模式下,服务器也只使用两个时间事件,所以不影响事件执行的性能。

感谢你能够认真阅读完这篇文章,希望小编分享的“redis事件处理流程的案例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,更多相关知识等着你来学习!


文章标题:redis事件处理流程的案例分析-创新互联
链接地址:http://mzwzsj.com/article/igeps.html

其他资讯

让你的专属顾问为你服务