1.Redis是单线程模型还是多线程模型?
redis6.X版本之前,属于单线程模型,redis中监听客户端的连接,和读写数据的操作都是由一个单线程来解决的。
而redis6.X版本后,引入了多线程,但是只作用于监听客户端的连接,读写数据的操作还是由一个单线程来解决,不会出现并发的问题。
2.为什么设计为单线程模型速度也很快?
-
redis的所有数据都在内存中,所以访问的效率很高。
-
结构化简单,底层是一个hash表的结构,访问数据的时间复杂度为O(1)。
-
多路IO复用(epoll函数实现,用来处理客户端的连接)和非阻塞IO。
-
单个线程避免了线程之间的切换(避免了上下文切换,及操作系统内核对线程的切换)。文章来源:https://www.toymoban.com/news/detail-556980.html
redis的瓶颈不是cpu,而是取决于内存的大小和网络的速度。文章来源地址https://www.toymoban.com/news/detail-556980.html
到了这里,关于Redis的线程模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!