单线程Reids为何这么快
redis 是单线程的
Redis 是单线程模型,因为redis完全是基于内存的操作,CPU不是redis的瓶颈,redis的瓶颈最有可能是机器内存代小或者网络带宽。既然单线程容易实现,而且CPU不会称为瓶颈,那就顺理成章的采用单线程的方案了。
为什么redis快
- redis是完全基于内存的,绝大部分请求都是纯粹的内存操作,非常迅速,数据在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
- 数据结构简单,对数据操作也简单
- 采用单线程,避免了不必要的上下文切换和竞争条件,不存在多线程导致的CPU切换,不用去考虑各种锁的问题,不存在加锁释放锁的操作,没有死锁为题导致的性能消耗。
- 使用多路复用IO模型,非阻塞IO。