Redis面试知识点八、C/S通信模型

C/S通信模型

  Redis服务器是一个事件驱动程序,它基于Reactor模式开发了自己的网络事件处理器,称为文件事件处理器(file event handler)。

1. File Event Handler

  文件事件处理器使用I/O多路复用(Multiplexing)程序来同时监听多个socket,并为socket关联不同的事件处理器。当被监听的套接字准备好执行accept、read、write、close等操作时,与之对应的文件事件就会产生。

Redis面试知识点八、C/S通信模型

2. I/O多路复用程序实现

  Redis IO多路复用程序所有功能是通过包装select,epoll,evport,kqueue这些函数实现的,对应源码ae_select.c、ae_epoll.c、ae_kqueue.c文件。
  Redis为每个I/O多路复用函数库都实现了相同的API,I/O多路复用程序的底层实现是可以互换的。事实上,Redis源码中用#include宏定义了相应的规则,程序会在编译时自动选择系统中性能最高的I/O多路复用函数作为Redis的底层实现。

上一篇:redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?


下一篇:PyCharm 服务器激活地址