Redis为什么单线程还这么快?
Redis是C语言写的,官方提供的数据为:100000W+的QPS,完全不比同样是使用key-value的Memecached差
1、redis是纯内存操作
2、采用了非阻塞的IO多路复用
3、单线程避免了多线程频繁的上下文切换的性能损耗
因为内存操作速度非常快,cpu对于多线程之间的上下文切换需要时间,反而影响了性能,还不如单线程来得实在
- Redis是单线程的,为什么?
明白第一个目标:Redis是很快的,官方标识,Redis是基于内存进行操作的,CPU不是Redis的性能瓶颈,Redis的性能瓶颈是根据机器的内容和网络带宽.既然可以使用单线程来实现,所以就使用单线程了
误区:
- 高性能的服务器一定是多线程的
- 多线程一定比单线程(CPU上下文切换,非常耗时的操作)快,效率高 CPU>内存>硬盘