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)。

1. 阻塞IO

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

 2. 非堵塞IO

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

 3. IO多路复用

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

 3.1 select

 3.2 poll

3.3 epoll

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

 

 4. 信号驱动IO

5. 异步IO 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/285584.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac managing Multiple Python Versions With pyenv 【 mac pyenv 管理多个python 版本 】

文章目录 1. 简介2. 安装2.1 brew 安装 pyenv2.2 脚本安装 3. pyenv 安装 Python4. 卸载 python5. 管理 python 1. 简介 Pyenv 是一个用于管理和切换多个 Python 版本的工具。它允许开发人员在同一台计算机上同时安装和使用多个不同的 Python 版本,而无需对系统进行…

STM32与Freertos入门(三)任务的创建、删除

1、串口配置 首先将串口进行配置,后续经常会应用,具体步骤点击:串口配置。 2、任务 创建一个任务,就是开辟一个空间、每个任务中都会有while(1)死循环。 2.1相关函数 动态创建:xTaskCreate…

vp与vs联合开发-通过CogAcqFifoTool工具连接相机

1.完成相机硬件配置后 2.完成vp与vs联合开发配置功能后 1.创建winform 项目 目的 : 搭建 界面应用 2. 1. vpp文件存入 项目的debug 目录中 目的: 在项目中加载本地vpp文件 读取相机工具 1.控件CogRecordDisplay 用于显示相机拍摄照片和实施显示的窗口 2和3 …

TortoiseGit通过SSH连接配置,生成SSH密钥方法

生成SSH密钥: Win环境下命令(git ssh key是可以自定义命名的): ssh-keygen -t ed25519 -C "git ssh key" && start "" "C:\Windows\notepad.exe" "C:\Users\%username%\.ssh\id_ed25519.pub" 打开cm…

弹幕情感分析可视化

弹幕情感分析可视化 引言1. 弹幕数据爬取2. 弹幕数据处理3. 弹幕数据可视化4. 弹幕情感分析5. 创新点:弹幕情感倾向分布 引言 当今互联网时代,大量的弹幕数据蕴含着丰富的信息,通过对这些数据进行分析和可视化,我们能够深入了解用…

【C语言】自定义类型——枚举、联合体

引言 对枚举、联合体进行介绍,包括枚举的声明、枚举的优点,联合体的声明、联合体的大小。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 枚举 枚举…

idea添加外部jar包

在日常开发中在lib包的里面添加了外部的jar,如何将外部的包添加到java类库中,这样项目就可以引用相应的jar包,操作如下: 1.先将需要的jar复制到lib包如下,如下截图,图标前面没有箭头,表示还未添…

清晨早安问候祝福语精选,早晨的微笑是全天幸福的开始

1、真情是大海,一辈子不枯;缘分是桥梁,一辈子相连;友情是棵松,一辈子常青;短信是条路,一辈子畅通!清晨的鲜花,永远芬芳!结下的缘分,永远不忘&…

【华大】HC32F420JATB-LQ48学习资料及开发环境

1. 产品特点 ⚫ 84MHz Cortex-M4 32位CPU平台 ⚫ 128K 字节 FLASH 存储器,具有擦写保护功能 ⚫ 24K 字节 RAM 存储器 ⚫ 6 通道 DMAC ⚫多达 52 个通用 I/O 管脚 ⚫ 时钟、晶振 ‒ 外部高速晶振 8MHz~32MHz ‒ 内部高速时钟 22MHz~24MHz ‒ 内部低速时钟 3…

【分享】5种方法将Excel设置为“只读”

将Excel表格设置以“只读方式”打开,可以提醒或者防止表格被随意改动,今天小编来分享一下将Excel设置为“只读”的5种方法。 方法一:通过“保护工作簿”设置 首先,打开Excel表格依次点击菜单选项卡【文件】→【信息】→【保护工作…

万能在线答题考试小程序源码系统 网课必备 既能刷题又能考试 附带完整的搭建教程

在当前的数字化时代,移动应用程序已经成为人们日常生活的重要组成部分。其中,小程序因其无需下载、即用即走的特性,备受用户青睐。现如今,将在线答题考试功能集成到小程序中,可以极大地提高学习者的学习效率和兴趣。 …

10kw直流负载主要工作方式

直接供电方式:是最简单的工作方式,即通过一个稳定的直流电源直接为10kW直流负载供电。这种方式的优点是简单、可靠,但缺点是电源的选择和配置较为复杂,需要考虑到负载的工作电压、电流、功率因数等因素。此外,如果电源…