redis单线程主要是指网络io以及键值对的读取,其他例如持久化啊都是另起线程的,为啥用单线程,主要还是避免资源的竞争,如果多线程那就有竟态资源,若保证数据顺序那必得加锁或加用同步原语,加锁并行变同步,同步原语代码变复杂难维护,所以就用了单线程,那单线程为啥子那么快呢,首先是基于内存的数据库,再者还基于它的数据结构,例如哈希表或跳表,另一方面redis采用多路复用io模型,也叫select/ epoll机制,通过操作系统内核去监听请求,有请求放队列中,通知redis去回调事件,这样就不会导致redis需要阻塞在监听套接字阶段。