Redis服务器是一个事件驱动的程序,有以下两类事件:

让人秒懂的redis的事件处理机制(图解Redis-事件实现机制)(1)

时间处理器结构

文件事件

Redis基于Reactor模式开发了自己的网络事件处理器,利用IO多路复用程序来监听套接字,当监听到连接应答、读取、写入、关闭等操作是,就会调用对应关联的事件处理器来处理。

文件事件处理器结构

让人秒懂的redis的事件处理机制(图解Redis-事件实现机制)(2)

文件处理器结构

Redis的事件框架由:I/O多路复用程序、aeMain主线程、事件分派、事件队列等几个核心元素组成,aeMain主线程一直轮询事件队列中就绪的I/O事件,然后通过事件绑定的处理器来处理业务。

文件事件执行过程

让人秒懂的redis的事件处理机制(图解Redis-事件实现机制)(3)

事件处理的过程

时间事件

Redis的时间事件分为两种,定时事件:让一个函数在指定的时间之后执行一次;周期性任务:让一个函数每间隔指定时间执行一次;时间事件是基于serverCron函数实现,该函数主要对服务器自身资源和状态检查和调整,确保服务器的长期、稳定运行,具体工作详见本文中事件的调度执行。

事件的调度执行

让人秒懂的redis的事件处理机制(图解Redis-事件实现机制)(4)

事件的调度执行过程

以上就是Redis事件实现机制的介绍,如果各位还想了解更多,欢迎转发评论 关注,Redis图解系列专栏持续更新中。

,