因为研究了一下redis使用了io多路复用模型,从而对其他几种模型都研究了一下,并以举例来描述

1、阻塞IO模型

应用进程通过系统调用接收数据,如果内核还没准备好,应用进程就阻塞,直到内核准备好数据

一个人在钓鱼,且一心一意的在钓,从下钩到钓上鱼前什么都不干就静静的等待着

2、非阻塞IO模型

如果内核还没准备好就先返回一个error,应用进程会不断与内核交互,直到内核准备好数据,再两次请求间进程可以先做别的事

一个人在钓鱼,下沟后就做别的事情(玩手机、吃东西、聊天等),定时的看一眼鱼上钩没有

3、型号驱动型IO模型

应用进程提交请求,在内核准备好数据后会有信号通知进程数据已经准备好了

钓鱼的时候放个报警器,期间可以做别的事

4、异步IO模型

应用进程提交请求,当内核准备好数据主动返回给进程

请了人钓鱼,我要钓鱼就有人帮我钓,钓到之后给我送过来

5、IO多路复用模型

同一时间用多个鱼竿钓鱼

IO多路复用在redis中的应用

所以redis为什么这么快呢

redis把所有连接与读写事件一起集中管理,并对底层IO多路复用机制进行了封装,最终实现了单进程能够处理多个连接以及读写事件。