2017-10-16 BoobooWei
客户端与服务器通信
客户端与服务器通过事件应答来进行通信的过程
事件处理角度下的 Redis 服务器运行流程:
- Redis 服务器是一个事件驱动程序, 服务器处理的事件分为时间事件和文件事件两类。
- 文件事件处理器是基于 Reactor 模式实现的网络通讯程序。
- 文件事件是对套接字操作的抽象: 每次套接字变得可应答(acceptable)、可写(writable)或者可读(readable)时, 相应的文件事件就会产生。
- 文件事件分为
AE_READABLE
事件(读事件)和AE_WRITABLE
事件(写事件)两类。 - 时间事件分为定时事件和周期性事件: 定时事件只在指定的时间达到一次, 而周期性事件则每隔一段时间到达一次。
- 服务器在一般情况下只执行
serverCron
函数一个时间事件, 并且这个事件是周期性事件。 - 文件事件和时间事件之间是合作关系, 服务器会轮流处理这两种事件, 并且处理事件的过程中也不会进行抢占。
- 时间事件的实际处理时间通常会比设定的到达时间晚一些。