欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 【Redis】redis的单线程模型为什么快?

【Redis】redis的单线程模型为什么快?

2025/2/24 9:03:01 来源:https://blog.csdn.net/2403_86785171/article/details/144384082  浏览:    关键词:【Redis】redis的单线程模型为什么快?

Redis的单线程模型

  对于redis来说,它最大的特点无非就是快,而我们又知道,redis是单线程模型,那么它为什么会快呢?
  • 首先我们说它快,肯定是有参照物的,这里一般是拿关系型数据库来进行对比,就比如MySQL
  • redis它的数据都是放在内存上的,mysql是放在硬盘上,从这一点来看,内存上访问数据肯定是比硬盘上访问数据要快的多
  • redis它的网络IO处理是使用异步io的多线程epoll模型,而且它还将各种命令的处理当成一个个的事件,这就保证了它的io速度是很快的,但这里就会有疑问, redis不是单线程模型吗?这里我想告诉的是redis的单线程模型指的是它的命令处理是单线程的,也就是串行化的,并不是说redis的整个服务器都是单线程。
  • redis是单线程,这就保证了它不会有线程安全的问题,更不会有线程竞争,以及线程切换的资源消耗。

redis的单线程模型,它处理命令是串行化的,我们就想象好比redis就是一个食堂的窗口,而这个食堂只会有一个窗口, 当学生要吃饭的时候就会来窗口排队,就好比redis的命令到来了, 需要服务器去处理这些命令,那么这些命令就会排队等待处理。

所以由于redis的这种单线程模型,注定了它绝对不能允许有那种需要很长时间去处理的命令出现,因为这就导致后面的命令都得不到处理,那么redis就会阻塞住。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词