redis为什么这么快(重要面试题)
为什么效率这么高,速度为什么这么快
谈到快以及效率高,都是我们和其他的关系型数据库进行对比的
我们参照物是数据库
1、redis访问内存,数据库则是访问硬盘,
2、redis核心功能,比数据库的核心功能更简单
数据库对于数据的插入删除查询,都有更复杂的功能支持,这样的功能势必要花费更多的开销,针对插入删除,数据库中的各种约束,都会使数据库做额外的工作,Redis干的活少,提供的功能相较于redis也是少了不少了
3、redis采取单线程模型,避免了一些不必要的线程竞争开销
redis每个操作都是短平快的,就是简单操作一下内存数,不是特别小号cpu的操作,就算是搞多个线程,也提升不大
4、处理网络IO的时候,使用了epoll这样的IO多路复用机制
一个线程就可以管理多个socket
针对tcp来说,服务器这边每次要服务一个客户端,都需要给这个客户安排一个socket
一个服务器服务很多客户端,同时就有很多的socket
这些socket上都是无时无刻的在传输数据么?
很多情况下,每个客户端和服务器之前的通信也没有那么频繁
此时这么socket大部分时间都是静默的,上面是没有数据需要传输的
同一时刻,只有少数socket是活跃的
最开始介绍TCP服务器的时候,有一个版本就是每个客户端给分配一个线程
客户端多了,线程就多了,系统开销就大了
通过IO多路复用,一个线程来处理多个socket
————————————————
版权声明:本文为CSDN博主「Undoom」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2301_80863610/article/details/150510360