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

发布时间:2021-02-19 11:23:16 作者:小新
来源:亿速云 阅读:277

这篇文章主要介绍了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事件处理流程的案例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. LVS负载均衡群集的案例分析及流程
  2. redis比mysql快的案例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis 事件

上一篇:计算机中cfg文件指的是什么

下一篇:计算机中ldsgamemaster指的是什么文件夹

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》