redis之事件

redis分两种类型的事件:文件事件(file event)和时间事件(time event)

1、文件事件处理器,分为四个部分,套接字、I/O多路复用程序、文件事件分派器和事件处理器,IO多路利用程序和文件事件分派器中间,有一个队列,通过这个队列,可以有序的、同步、每次一个套接字的方式向文件事件分派器传送套接字

AIP:

src/ae.c:aeCreateFileEvent,将事件加入到IO多路复用程序监听范围

src/ae.c:aeDeleteFileEvent,取消在IO多路复用程序监听范围的事件

src/ae.c:aeGetFileEvents,获得在IO多路复用程序监听范围的事件

aeWait,在给定的时间内,等待给定类型事件产生

aeApiPoll,接受一个sys/time.sh/struct timeval结构为参数,在指定的时间内,等待所有被c:aeCreateFileEvent设置为监听状态的文件事件,当有事件发生时或超时,返回

aeProcessEvents,文件事件分派器,调用aeApiPoll,然后遍历所有已产生的事件,并执行对应的事件处理器来处理事件

aeGetApiName,返回io多路复用程序低层使用的函数库名称

2、文件处理器

1)连接应答处理器:src/networking.c:acceptTcpHandler

2)命令请求处理器:src/networking.c:readQueryFromClient

3)命令回复处理器:src/networking.c:sendReplyToClient

3、时间事件

1)定时事件(暂时没使用)

2)周期性事件

time_event:id(全局事件ID)+when(UNIX时间,时间事件到达时间)+timeProc(时间事件处理器)

src/ae.c:aeCreateTimeEvent,接受一个毫秒数和时间事件处理器proc,将新的时间事件添加到服务器

src/ae.c:aeDeleteTimeEvent,根据事件ID,删除时间事件

src/ae.c:processTimeEvents,处理时间事件

src/ae.aeProcessEvents,处理事件,包括文件事件和时间事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值