Redis原理之网络模型笔记

目录

1. 阻塞IO

 2. 非堵塞IO

 3. IO多路复用

​3.1 select

 3.2 poll

3.3 epoll

 4. 信号驱动IO

5. 异步IO 

 6. Redis是单线程还是多线程


Redis采用单线程模型,这意味着一个Redis服务器在任何时刻都只会处理一个请求。Redis的网络模型涉及到阻塞I/O(Blocking I/O)、非阻塞I/O(Non-blocking I/O)、I/O多路复用(I/O Multiplexing)、信号驱动I/O(Signal-driven I/O)以及异步I/O(Asynchronous I/O)。

Redis原理之网络模型笔记_第1张图片

1. 阻塞IO

  • 在阻塞I/O模型中,当一个I/O操作发生时,整个进程会被阻塞,直到I/O操作完成为止。
  • 在Redis的网络模型中,当执行一次命令或操作时,可能会涉及到与客户端的通信,这时Redis的主线程会被阻塞。

Redis原理之网络模型笔记_第2张图片

 2. 非堵塞IO

  • 在非阻塞I/O模型中,当一个I/O操作发生时,进程不会被阻塞,而是继续执行其他操作。进程需要通过轮询来检查I/O操作是否完成。

Redis原理之网络模型笔记_第3张图片

 3. IO多路复用

  •  I/O多路复用允许单一的进程或线程管理多个套接字。通过select、poll、epoll等机制,可以同时监听多个套接字上的I/O事件。
  • Redis使用了I/O多路复用来同时监听多个客户端连接的事件,这样单个线程可以处理多个连接。

Redis原理之网络模型笔记_第4张图片

Redis原理之网络模型笔记_第5张图片

Redis原理之网络模型笔记_第6张图片 3.1 select

Redis原理之网络模型笔记_第7张图片

 3.2 poll

Redis原理之网络模型笔记_第8张图片

3.3 epoll

epoll是Linux提供的最新、最高效的I/O多路复用机制。它引入了三个系统调用:epoll_create(创建一个epoll实例)、epoll_ctl(注册或注销文件描述符)和epoll_wait(等待事件的发生)。

Redis原理之网络模型笔记_第9张图片

 Redis原理之网络模型笔记_第10张图片

 4. 信号驱动IO

Redis原理之网络模型笔记_第11张图片

5. 异步IO 

特点: 异步I/O允许一个I/O操作启动后,应用程序可以继续执行其他任务,而不必等待I/O操作完成。当I/O操作完成时(就绪和数据拷贝完成),应用程序会得到通知。

Redis原理之网络模型笔记_第12张图片

Redis原理之网络模型笔记_第13张图片

 6. Redis是单线程还是多线程

Redis原理之网络模型笔记_第14张图片

Redis原理之网络模型笔记_第15张图片

你可能感兴趣的:(Redis,redis,数据库,缓存)