在 Redis 6.0 中新增了多线程的功能来提高 I/O 的读写性能,他的主要实现思路是将主线程的 IO 读写任务拆分给一组独立的线程去执行,这样就可以使多个 socket 的读写可以并行化了,采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗),将最耗时的Socket的读取、请求解析、写入单独外包出去,剩下的命令执行仍然由主线程串行执行并和内存的数据交互。
上面说过多线程是针对网络IO采用了多线程,但是,最终命令在Redis server里其实还是由一个线程去完成的。采用多线程是充分利用了CPU多核来提升效率的,但是server收到命令后,还是排队,按照单线程顺序去执行命令的。