9.事件
Redis服务器是一个事件驱动程序。
文件事件
服务器通过套接字和客户端或者其他服务器进行通信,文件事件就是对套接字操作的抽象。
Redis基于Reactor模式开发了自己的网络事件处理器,使用I/O多路复用程序来同时监听多个套接字,并将到达的事件传送给文件事件分派器,分派器会根据套接字产生的事件类型调用响应的事件处理器。
时间事件
服务器有一些操作需要在给定的时间点执行,时间事件是对这类定时操作的抽象。
时间事件又分为:
- 定时事件:是让一段程序在指定的时间之内运行一次。
- 周期性事件:是让一段程序每隔指定时间就执行一次。
Redis将所有时间事件都放在一个无序链表中,通过遍历整个链表查找出已到达的时间事件,并调用相应的事件处理器。