Redi如何处理文件事件和时间事件?
24-05-24
slbcun
860℃
0
Redis 事件驱动模型
事件驱动模型
Redis 是一个事件驱动程序,但和 Memcached 不同的是,Redis 并没有采用 libevent 或 libev 这些开源库,而是直接开发了一个新的事件循环组件。Redis 作者给出的理由是,尽量减少外部依赖,而自己开发的事件模型也足够简洁、轻便、高效,也更易控制。Redis 的事件驱动模型机制封装在 aeEventLoop 等相关的结构体中,网络连接、命令读取执行回复,数据的持久化、淘汰回收 key 等,几乎所有的核心操作都通过 ae 事件模型进行处理。
Redis 的事件驱动模型处理 2 类事件:
文件事件,如连接建立、接受请求命令、发送响应等;
时间事件,如 Redis 中定期要执行的统计、key 淘汰、缓冲数据写出、rehash等。