redis单线程架构

redis单线程架构

  • redis C/S 模型,每次客户端调用都经历 发送命令,执行命令,返回结果三个过程。
  • redis是基于单线程来处理命令的,所以一条命令从客户端到达服务端不会立即执行,所有命令到达一个队列中,然后逐个被执行,执行顺序不确定。

为什么单线程模型也能达到每秒百万级别的处理能力?

  • 1:纯内存访问,内存的响应时间大概为100纳秒
  • 2:非阻塞IO,redis使用epoll作为I/O多路复用技术的实现,再加上redis自身的事件处理模型将epoll中的连接,读写,关闭都转换为时间,不在网络上浪费时间。
  • 3:单线程避免了 线程切换和竞态产生的消耗。

单线程的缺点:对命令的执行时间有要求,如果命令执行时间过长,会造成阻塞。

原文地址:https://www.cnblogs.com/zhoujun007/p/13131603.html