Redis教程

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

本文主要是介绍Redis面试知识点八、C/S通信模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C/S通信模型

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

1. File Event Handler

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

在这里插入图片描述

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面试知识点八、C/S通信模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!