这主要是基于一种客观原因来考虑的。因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了(毕竟采用多线程会有很多麻烦!)
主要是有三个原因:1、Redis的全部操作都是纯内存的操作;2、Redis采用单线程,有效避免了频繁的上下文切换;3,采用了非阻塞I/O多路复用机制。
1、Redis是一个单线程程序,也就说同一时刻它只能处理一个客户端请求; 2、Redis是通过IO多路复用(select,epoll,kqueue,依据不同的平台,采取不同的实现)来处理多个客户端请求。