Redis深度历险笔记05 Redis线程模型、原理

Redis为什么是单线程的,Redis线程模型

  • Redis内部使用了文件事件处理器file event handle,这个文件事件处理器是单线程的,所以Redis被称为单线程的模型。它采用I/O多路复用机制监听多个socket,多个socket可能会并发产生不同的操作,每个操作对应不同的文件事件,IO多路复用机制将socket产生的事件放入一个队列中,事件分派器每次从队列中取出一个事件,把该事件交给对应的事件处理器进行处理。

文件事件处理器的结构包含4个部分:

  • 多个socket
  • IO多路复用程序
  • 文件事件分派器
  • 事件处理器
    • 连接应答处理器
    • 命令请求处理器
    • 命令回复处理器

Redis为什么快?

纯内存操作,基于非阻塞IO多路复用机制,单线程避免了线程切换的开销

  1. redis采用非阻塞的IO多路复用机制监听多个socket,将socket产生的事件放入一个队列中(非阻塞IO多路复用效率很高),事件分派器每次从队列中取出一个事件,把该事件交给对应的事件处理器进行处理(事件处理器是基于纯内存来操作的,效率非常高,处理一个事件只需要几微秒)。
  2. redis是单线程的,避免了线程切换的开销

猜你喜欢

转载自blog.csdn.net/weixin_43338519/article/details/105514502