Redis的单线程+多路IO复用

多路IO复用

多路IO复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行正真的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

简单来说:

多路IO复用其实是在单个线程中通过记录跟踪每一个sock(I/O流) 的状态来管理多个I/O流 。

多路IO复用包括select,poll,epoll三种模式:

  • select模式:一个一个的去询问请求的状态,直到有一个处于就绪状态,然后交给redis处理,否则继续询问下去,但是最多只能监视1024个请求;
  • poll模式:和select模式一样,但是poll模式没有监视请求数量的限制;
  • epoll模式:监视请求时,先为请求设置一个标识符,判断是否处于就绪状态,通过查看标识符,将处于就绪状态的请求交给redis处理;
  • epoll性能比其他几者要好。

参考:

https://blog.csdn.net/diweikang/article/details/90346020

最后更新: 2020年07月17日 21:20

原始链接: http://ligangit.com/2020/07/17/Redis-单线程-多路IO复用/

× 请我吃糖~
打赏二维码