本章节详细介绍了 Redis 的事件机制,包括 Redis 服务器的启动过程、AE 事件处理器、通过 Epoll 处理网络连接的流程,以及 Redis6 引入的网络 I/O 线程机制等内容。
Server 启动过程
本文是 Redis 6 启动过程源码解析,详细介绍了 redisServer 结构体、main 函数执行流程、initServer 函数初始化流程等内容。
AE 事件处理抽象层
本文详细介绍了 Redis 6 的事件机制抽象层,以及事件数据结构 aeEventLoop、初始化过程和 aeMain 事件循环器的运行机制。
AE_EOLL 多路复用器
本文详细介绍了 Redis 6 的 AE 事件管理机制对 epoll 的封装,即 aeApiCreate()、aeApiAddEvent()、aeApiPoll() 函数的实现。
网络连接管理
本文详细介绍了 Redis 6 的客户端网络连接管理过程,包括 connection 与 client 数据结构、网络连接过程的处理以及网络断开后的处理过程。
RESP 协议
本文详细介绍了 Redis 6 中 RESP2 以及 RESP3 协议的内容,包括字符串、数组、Set、Map 等数据结构的协议结构,以及 RESP 解决拆包粘包问题原理。
命令处理过程
本文详细介绍了 Redis 6 内联请求 (INLINE) 与多批次请求 (MULTIBULK) 命令类型, 以及这两种请求的解析、 执行以及响应的详细过程。
网络 I/O 线程
本文详细介绍了 POSIX 线程标准、Redis I/O 线程的初始化过程、请求解析过程和响应过程, 以及 I/O 线程状态切换逻辑。