学计算机前端好就业吗,模板网站有利于做seo吗,商城建设方案,网站源码整站下载Redis是事件驱动的程序#xff0c;并基于Reactor模式开发了自己的网络事件处理器#xff0c;被称之为文件处理器(File Event Handler)。 文件处理器通过I/O多路复用程序来同时监听多个Socket#xff0c;并根据Socket目前执行的任务来关联不同的事件处理器。当被监听的Socket…Redis是事件驱动的程序并基于Reactor模式开发了自己的网络事件处理器被称之为文件处理器(File Event Handler)。 文件处理器通过I/O多路复用程序来同时监听多个Socket并根据Socket目前执行的任务来关联不同的事件处理器。当被监听的Socket准好执行应答(accept)、读取(read)、写入(write)和关闭(close)操作时与操作相对应的文件事件就会产生这时文件事件处理器就会调用Socket关联的事件处理器进行事件处理。
文件处理器构成
文件处理器主要包括Socket、I/O多路复用程序、文件派发器和事件处理器。 因为I/O多路复用同时监听多个Socket那么一定存在多个事件并发的情况。Redis通过消息队列来解决并发的问题。通过消息队列可以有序、同步的将每个socket事件分配给文件事件派发器。 文件处理器主要包括命令应答处理器、命令请求应答器和命令回复应答器
命令应答处理器为了对连接服务器的各个客户端进行应答 服务器要为监听套接字关联连接应答处理器命令请求处理器为了接收客户端传来的命令请求服务器要为客户端套接字关联命令请求处理器命令回复处理器为了向客户端返回命令的执行结果服务器要为客户端套接字关联命令回复处理器
C/S交互过程 以一个完整的C/S通讯示例进行分析
Redis服务器启动在main函数中通过aeMain创建文件处理器服务器的监听Socket的AE_READABLE事件处于监听状态下而该事件所对应的处理器为连接应答处理器客户端发起连接请求监听Socket产生AE_READABLE事件触发连接应答处理器执行连接应答处理器对客户端连接进行应答创建客户端Socket将客户端Socket的AE_READABLE事件与命令请求处理器关联客服端向服务端发送一个命令请求客户端产生AE_READABLE事件触发命令请求处理器执行执行命令将产生相应命令回复服务器将客户端Socket的 AE_WRITABLE 事件与命令回复处理器进行关联客户端尝试读取命令回复时客户端Socket将产生 AE_WRITABLE 事件触发命令回复处理器命令回复处理器命令回复全部写入到Socket后服务器就会解除客户端Socket套接字的 AE_WRITABLE 事件与命令回复处理器之间的关联