什么是多路复用?
C表示client,当他们访问内核或者访问app传数据的时候,多路复用器对他们进行登记,告诉应用哪一条线上有数据,但是真正的数据读取还是要靠 应用自己去读。
Redis到底是多线程还是单线程的?
对于这样一个任务:
工作线程是唯一的,但是 I/O threads可以是多线程的。如下图
但是同一时间不会既有工作线程又有I/O线程,所以整体来看,它是单线程的。为什么Redis是单线程的,因为Redis是基于内存的数据库,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。