Redis网络处理与线程模型
相信大家已经听过无数遍“Redis是单线程的”这句话了,Redis真的是单线程的吗,又是如何支撑那么大的并发量,并且运用到了这么多的互联网应用中的呢?
其实,Redis的单线程指的是Redis内部会有一个主处理线程,充分利用了非阻塞、IO多路复用模型,实现的一个Reactor架构。但是在某些情况下,Redis会生成线程或者子进程来执行某些比较繁重的任务。
Redis包含了一个称为AE事件模型
的强大的异步事件库来包装不同操作系统的IO复用技术,如epoll、kqueue、select等。
关于Redis的网络处理与线程模型,我在Java架构杂谈
公众号以及IT宅(itzhai.com)
中的这篇文章有详细的介绍了:性能追击:万字长文30+图揭秘8大主流服务器程序线程模型,感兴趣的朋友可以进一步阅读。