面试题:单线程redis还这么快
为什么单线程redis还这么快
- 绝大部分请求时纯粹的内存操作,非常快速10W+
- 采用单线程,避免了不必要的上下文切换和竞争条件,原子性保证关键。其中单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其他模块还是用了多线程,例如持久化模块。
- 非阻塞IO多路复用,这样提高了redis的吞吐量。多路指的是多个网络连接,复用指的是同一个线程,采用多路复用可以让单个线程高效的处理多个连接请求。
- Redis的瓶颈最有可能是机器内存的大小或者网络带宽,还有些操作不当造成的堵塞用于记录执行时间超过给定时间的命令请求,可以用来监视和优化查询速度