Redis为什么这么快之IO多路复用

发布时间 2023-07-10 10:48:48作者: 帅气的涛啊

情景复现

面试官:Redis为什么这么快?
我:1. 基于内存 2. 高效数据结构 3. 单线程 4. IO多路复用
面试官:那你讲讲Redis的IO多路复用模型是什么。
我:哦,嗯,啊,呀...IO多路复用、文件描述符、用户态,内核态、哦。

Redis的IO多路复用模型是什么

Redis采用I/O多路复用机制,使得Redis在单线程模式下依然可以高效的处理多个I/O流。

其核心思想是,先通过 select / poll / epoll 等系统调用查询监听的文件描述符是否准备就绪,这个操作可阻塞也可立即返回(具体看参数和对应规则),当其中一个或者多个文件描述符IO事件准备就绪才开始下一步,即 read 或者 write 等系统调用,这里才是真正的读或者写。(来源:redis 的 IO 多路复用如何?

首先Redis IO多路复用采用 epoll 的实现方案,但是在了解 epoll 前先了解一下 selectpoll ,对后面理解更有帮助。

select

poll

epoll

推荐内容

Redis网络模型-IO多路复用