Redis03——Redis之单线程+多路IO复用技术
Redis 是单线程+多路IO复用技术
多路复用:使用一个线程来检查多个文件描述符的就绪状态
如果有一个文件描述符就绪,则返回
否则阻塞直到超时
得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(线程池)
本质上是没有阻塞的
- 阻塞lO(串行):给女神发一条短信, 说我来找你了,然后就默默的一直等着 女神下楼,这个期间除了等待你不会做其他事情,属于备胎做法.
- 非阻塞IO:给女神发短信,如果不回,接着再发,一直 发到女神下楼,这个期间你除了发短信等待不会做其他事情,属于专-做法.
- IO多路复用:是找一个宿管大妈来帮你监视下楼的女生,这个期间你可以些其他的事情.例如可以顺便看看其他妹子,玩玩王者荣耀,上个厕所等等.
IO复用又包括select, poll, epoll模式那么它们的区别是什么?
- select:
一个女生下楼, select大妈都不知道这个是不是你的女神,她需要一个一 个 询问,并且select大妈能力还有限,最多一次帮 你监视1024个妹子
- poll:
poll大妈不限制盯着女生的数量,只要是经过宿舍楼门口的女生,都会帮你去问是不是你女神
- epoll:
epoll大妈不限制盯着女生的数量,并且也不需要一个- 个去问.那么如何做呢? epol1大妈会为每个进宿舍楼的女生脸上贴上一一个大字条,上面写上女生自己的名字,只要女姓下楼了, eoll大妈就知道这个是不是你女神了,然后大妈再通知你.