Redis 客户端与服务器连接流程实例

  • Redis 客户端连接服务器完整的流程
    Redis 客户端与服务器连接流程实例_第1张图片
  1. redis sever 启动时,会把 AE_READABLE 事件关联至 acceptTcpHandler 方法,向eventLoop注册。
    Redis 客户端与服务器连接流程实例_第2张图片

  2. 当client连接server时,会触发redis sever的AE_READABLE事件为就绪状态。

  3. AE_READABLE事件为就绪态时,会在aeMain中对其进行处理,并执行绑定的acceptTcpHandler方法。在acceptTcpHandler方法中,会创建client实例,并将client的AE_READABLE事件和readQueryFromClient方法绑定,向eventLoop注册。
    Redis 客户端与服务器连接流程实例_第3张图片

  4. client向server发送命令,触发client的AE_READABLE事件变为就绪态。

  5. 在aeMain中对AE_READABLE变为就绪状态的事件进行处理。执行绑定的readQueryFromClient方法,并执行相应的命令。在命令执行过后准备发送结果给client之前,会把client的AE_WRITEABLE事件和sendReplyToClient方法绑定, 向eventLoop注册,同时发送命令,触发AE_WRITEABLE事件。

  6. 在aeMain中对AE_WRITEABLE的事件进行处理,执行绑定的sendReplyToClient方法,把命令发送给client,同时删除向eventLoop注册的AE_WRITEABLE事件。

你可能感兴趣的:(Redis)