lankk的魔法书札 2019-06-27
优点:
缺点:
如果时客户端要连接Redis,那么会为socket关联连接应答处理器
如果客户端要写数据到Redis,那么会为scoket关联命令请求处理器
如果客户端要从Redis读取数据,那么会为socket关联命令回复处理器
在Redis启动初始化的时候,Redis会将连接应答处理器和AE-READABLE事件关联在一起,接着如果客户端跟Redis发起连接,此时会产生一个AE-READBLE事件,然后由连接应答处理器来处理和客户端建立连接,创建客户端对应的socket,同时将这个socket的AE-READBLE事件跟命令请求处理器关联起来。
当客户端向Redis发起请求的时候,(不管是读或者是写的请求),首先就会在socket产生一个AE-READBLE事件,然后由对应的命令请求处理器来处理,这个命令请求处理器就会从socket中读取相关数据,然后进行执行和处理。
接着Redis这边准备好了给客户端的响应数据之后,就会将socket的AE-WRITEABLE事件跟命令回复处理器关联起来,当客户端这边准备好读取响应数据的时候,就会产生一个AE-WRITEABLE事件,会有对应的命令回复处理器来处理,这就是将准备好的响应数据写入socket,供客户端读取。
命令回复处理器写完之后,就会删除这个socket的AE-WRITEABLE事件和命令回复处理器的关联关系。