因为研究了一下redis使用了io多路复用模型,从而对其他几种模型都研究了一下,并以举例来描述
1、阻塞IO模型
应用进程通过系统调用接收数据,如果内核还没准备好,应用进程就阻塞,直到内核准备好数据
一个人在钓鱼,且一心一意的在钓,从下钩到钓上鱼前什么都不干就静静的等待着
2、非阻塞IO模型
如果内核还没准备好就先返回一个error,应用进程会不断与内核交互,直到内核准备好数据,再两次请求间进程可以先做别的事
一个人在钓鱼,下沟后就做别的事情(玩手机、吃东西、聊天等),定时的看一眼鱼上钩没有
3、型号驱动型IO模型
应用进程提交请求,在内核准备好数据后会有信号通知进程数据已经准备好了
钓鱼的时候放个报警器,期间可以做别的事
4、异步IO模型
应用进程提交请求,当内核准备好数据主动返回给进程
请了人钓鱼,我要钓鱼就有人帮我钓,钓到之后给我送过来
5、IO多路复用模型
同一时间用多个鱼竿钓鱼
IO多路复用在redis中的应用
所以redis为什么这么快呢
redis把所有连接与读写事件一起集中管理,并对底层IO多路复用机制进行了封装,最终实现了单进程能够处理多个连接以及读写事件。
最后一次更新于2024-06-05