采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师我有三个小问题想请教,在网上看了一些答案也没底,故来请教,希望听下老师的理解
嗯嗯,老师也很乐意为大家解决学习中的其他难题。
对于redis的单线程,只是限于网络IO的线程,用一个线程处理IO是常见的做法,这个线程在接受到命令后,会队列的方式下发到后端模块,在后端,是有多个线程在工作的,这整个过程是异步的,可以了解一下事件驱动模型的相关知识,比如:epoll、select这些。
redis是数据库,而且是k-v数据库,这意味着它的主要功能是根据key,检索对应的value,在整一个过程当中,读写存储器占用了较多的时间,同时网络IO也占用了较多的时间,而计算只占用了很小的比重,这意味着对CPU的性能要求并不高,所以瓶颈在IO而不是CPU,可以列举瓶颈在CPU的一些例子对比一下,比如:渲染图像、数学运算,这些则是CPU密集型,而非IO密集型。
本质还是redis越来越多人使用了,社区等对redis提出了更高的要求,在单线程的场景下,编程模型简单,在初期,可以迅速发展;而随着越来越多的用户使用,对redis也提出了更苛刻的要求,因此引入了redis以进一步提升性能,当然,redis本身也会越来越复杂,这也才有了redis之父退出维护redis的事情。
希望对你有所帮助。
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.8k 17
2.2k 14
1.6k 13
1.9k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号