epoll、select、poll 对比
在Redis单线程模型中,有一个非常重要的点就是IO多路复用模块。这个模块的存在,是单线程的Redis如此之快的非常重要的因素。
首先几个点需要注意下:
- IO多路复用这一概念,并不是Redis专属,Redis仅仅是作为系统的一个应用程序用到了系统的这一功能而已。
- IO多路复用本质上一一种思想,一种为了解决单线程高并发的问题的一种解决思路,并不是一种具体的实现。在不同的系统下有不同的实现,比如说在Linux下,现在最重要的实现是epoll;在Mac系统下,现在最重要的实现是XXX;select则应该是POSIX所规定,一般操作系统均有实现。
这是当年的并发图,震撼人心的并发图。我们可以看到蓝色的线是epoll,性能几乎不受连接数的影响(dead connections),无敌的并发!
参考资料: