Reids为什么使用单线程,一个例子让你彻底明白。

279 阅读1分钟

假设CPU主频为2.5GHZ,即每秒可以执行2.5*10^9个指令,每个指令执行时间也仅0.4ns,而一次上下文切换时间却大概需要2000ns;

在涉及下层存储等慢速情况下,如磁盘I/O交互时,线程等待磁盘数据读取或写入,空闲的CPU就可以再服务于其它线程,这种情况下多线程效率才会高于单线程。

但是Redis是纯粹内存操作的,引入多线程带来的上下文切换时间要远大于串行执行指令的时间,

所以Redis采用单线程可以带来更高的效率。