首页 > 数据库 >redis自学(21)信号驱动IO和异步IO

redis自学(21)信号驱动IO和异步IO

时间:2024-03-19 14:55:23浏览次数:33  
标签:异步 21 IO redis 用户 SIGIO 内核 信号

信号驱动IO

信号驱动IO是与内核建立SIGIO的信号关联并设置回调,当内核有FD就绪时,会发出SIGIO信号通知用户,期间用户应用可以执行其它业务,无需阻塞等待

 

 

缺点:

  1. 当有大量IO操作时,信号较多,SIGIO处理函数不能及时处理可能导致信号队列溢出
  2. 而且内核空间与用户空间的频繁信号交互性能也较低

 

异步IO

异步IO的整个过程都是非阻塞的,用户进程调用完异步API后就可以去做其它事情,内核等待数据就绪并拷贝到用户空间后才会递交信号,通知用户进程。

 

 

可以看到,异步IO,用户进程在两个阶段都是非阻塞的状态

缺点:高并发的情况下,内核里积累的IO读写任务会越来越多,可能会导致整个系统因为内存占用过多而崩溃的现象,所以需要做好并发访问的限流,但是限流的工作和回调函数的机制,实现起来的代码复杂度就会高很多

同步和异步

IO操作是同步还是异步,关键看数据在内核空间与用户空间的拷贝过程(数据读写的IO操作),也就是阶段二,是同步还是异步:

 

 

标签:异步,21,IO,redis,用户,SIGIO,内核,信号
From: https://www.cnblogs.com/bulesea/p/18082851

相关文章

  • PVS‑Studio 7.29 for macOS, Linux & Windows - 代码质量安全静态分析
    PVS‑Studio7.29formacOS,Linux&Windows-代码质量安全静态分析PVS‑Studio-代码漏洞扫描工具|静态代码测试|代码安全分析请访问原文链接:https://sysin.org/blog/pvs-studio/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgC、C++、C#和Java代码静......
  • maven高级21_将第三方jar安装到本地仓库和maven私服6
    一、说明在maven工程的pom.xml文件中配置某个jar包的坐标后,如果本地的maven仓库不存在这个jar包,maven工具会自动到配置的maven私服下载,如果私服中也不存在,maven私服就会从maven中央仓库进行下载。但是并不是所有的jar包都可以从中央仓库下载到,比如常用的Oracle数据库驱动的j......
  • Garnet发布 Redis不再是唯一选择
    Garnet是MicrosoftResearch的远程缓存存储,提供强大的性能(吞吐量和延迟)、可扩展性、存储、恢复、集群分片、密钥迁移和复制功能。Garnet可以与现有的Redis客户端配合使用。Garnet是MicrosoftResearch推出的一种新型远程缓存存储,具有多种独特优势:Garnet采用流行的......
  • 在Linux/Ubuntu/Debian中使用iFuse访问iOS 设备(例如 iPhone 或 iPad)上的文件可双向复
    iFuse是一款工具,可让你在Linux系统上安装iOS设备(例如iPhone或iPad),使你能够访问其文件系统并与设备传输文件。以下是有关如何使用iFuse的基本指南:安装依赖项:在安装iFuse之前,确保你的系统上已安装所需的依赖项。这些依赖项通常包括libimobiledevice和libim......
  • 功能齐全的免费 IDE Visual Studio 2022 社区版
    面向学生、开放源代码和单个开发人员的功能齐全的免费IDE下载地址VisualStudio2022社区版-下载最新的免费版本VisualStudio2022CommunityEdition–DownloadLatestFreeVersion准备安装选择需要安装的程序安装进行中使用C++学习程序设计相关知识并培......
  • 好用的Redis 客户端工具有几个? 这里推荐两三个
    微信公众号:数据库杂记   个人微信: iiihero我是iihero. 也可以叫我Sean.iihero@CSDN(https://blog.csdn.net/iihero) Sean@墨天轮 (https://www.modb.pro/u/16258)数据库领域的资深爱好者一枚。水木早期数据库论坛发起人 db2@smth,早期多年水木论坛数据库版版主。......
  • maven高级21_maven私服5
    一、说明maven仓库分为本地仓库和远程仓库,而远程仓库又分为maven中央仓库、其他远程仓库和私服(私有服务器)。其中,中央仓库是由maven官方提供的,而私服就需要我们自己搭建了。maven私服就是公司局域网内的maven远程仓库,每个员工的电脑上安装maven软件并且连接maven私服,程序员可......
  • Python——Regular Expression(正则表达式)RE
    正则表达式是一种强大的文本处理工具,它使用一种特殊的语法来匹配、查找以及替换字符串中的字符组合。在Python中,正则表达式,"re模块"。英文叫做"RegularExpression"。re模块是Python中用于处理正则表达式的标准库。它提供了多个函数来执行正则表达式的匹配、查找、替换和分割操......
  • GEE C16 Change Detection 变化检测
    导读:1.创建和探索如何读取一个假彩色无云的Landsat合成影像;2.计算归一化燃烧指数;3.定位变化的区域;4.生成变更图并使用阈值对变更进行分类。一、准备影像1.1select用法 1.2多时相配准、辐射大气校正这里用的LANDSAT/LC08/C02/T1_L2数据集。 二、创建假彩色合成影......
  • 泛型委托 Action、Func
    委托在使用的时候有三个步骤:1、定义委托2、实例化委托3、执行委托每次使用委托,我们都需要定义委托,非常麻烦。C#已经内置了一些委托给我们使用,无需再重新定义。一、Action委托(无返回委托)1、Action无参无返回2、Action一个参数3、Action<T1,,,,,,,,,,,,T16>最多支持16......