redis系列~通用基础知识

发布时间 2023-11-10 18:20:06作者: 开心的蛋黄派

Redis为什么这么快

  1. 完全基于内存操作
  2. 使⽤单线程,避免了线程切换和竞态产生的消耗
  3. 基于⾮阻塞的IO多路复⽤机制
  4. C语⾔实现,优化过的数据结构,基于⼏种基础的数据结构,redis做了⼤量的优化,性能极⾼

IO多路复用机制讲解

     

 

 1 单线程阻塞处理

2 多线程并发处理

3  IO多路复用,单线程并发处理 用户程序只需要将请求提交给内核,由内核用少量的线程去监听,有事件就通知用户程序呢?这就是IO多路复用

IO多路复用机制是指一个线程处理多个IO流,多路是指网络连接,复用指的是同一个线程,对于并发较高会有很大优势,当有事件发生时,用一个线程就能处理大量网络IO请求,实际上基本所有中间件在处理网络IO这一块都会使用到IO多路复用,如kafka,rocketmq等

select/poll/epoll
这三个函数是实现linux io多路复用的内核函数

redis网络IO模型底层使用IO多路复用,通过reactor模式实现的