广告
返回顶部
首页 > 资讯 > 数据库 >Redis的IO多路复用
  • 472
分享到

Redis的IO多路复用

2024-04-02 19:04:59 472人浏览 泡泡鱼
摘要

一、linux的io复用函数同一个线程内,多个描述符的IO操作,能够并发交替地顺序执行。epoll只提供三个函数:int epoll_create(int size); #创建epoll句柄int epol

一、linuxio复用函数

Redis的IO多路复用

同一个线程内,多个描述符的IO操作,能够并发交替地顺序执行。

epoll只提供三个函数:

int epoll_create(int size); #创建epoll句柄

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

关联被监听的事件和epool句柄(可以通过op参数来增加,删除和修改关联关系)

第一个参数epfd,为epoll_create()的返回值,

第二个参数op,表示关联关系:EPOLL_CTL_ADD(增)EPOLL_CTL_MOD(改)EPOLL_CTL_DEL(删)
第三个参数fd,是需要监听的fd,

第四个参数event,告诉内核需要监听的具体事件:EPOLLIN(可读)EPOLLOUT(可写)EPOLLPRI(紧急可读)EPOLLERR(错误)EPOLLHUP(挂断)EPOLLET(触发模式ET或LT)EPOLLONESHOT(只监听一次)

此处可以设置,事件对应的回调函数。

int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);

如果没有epoll_ctl中监听的事件产生,就会阻塞在这里,一直等到监听事件产生,或者等到超时。

如果有epoll_ctl中监听的事件,就执行具体的事件处理回调函数。


epoll保证了每个fd在整个过程中只会拷贝一次,从内核空间到用户空间。

二、Redis的IO多路复用

Redis的IO多路复用

redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。

事件处理器对不同的事件,进行处理。

main –> aeMain –> while { aeProcessEvents –> aeapiPoll –> epoll_wait }

Redis的IO多路复用

您可能感兴趣的文档:

--结束END--

本文标题: Redis的IO多路复用

本文链接: https://www.lsjlt.com/news/42956.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis的IO多路复用
    一、linux的IO复用函数同一个线程内,多个描述符的IO操作,能够并发交替地顺序执行。epoll只提供三个函数:int epoll_create(int size); #创建epoll句柄int epol...
    99+
    2022-10-18
  • IO多路复用丶基于IO多路复用+sock
      IO多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作   IO多路复用作用:     检测多个socket是否已经发生变化(是否已经连接成功/是否已经获取数据...
    99+
    2023-01-30
    多路 复用 IO
  • python之IO多路复用
      同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?  不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。  本文讨论的背景是Linux环境下的network IO。  在进行解释之前,首先要说明几...
    99+
    2023-01-31
    多路 复用 python
  • python IO多路复用之select
        说起IO操作我们最先想到的就是读写文件。其实python中对有三种IO操作,打开文件,使用socket进行网络连接和系统的标准输入输出sys.stdin和sys.stdout。我们先来看一段socket服务端的代码:import s...
    99+
    2023-01-31
    多路 复用 python
  • python IO多路复用之epoll详解
    什么是epoll epoll是什么?在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。当然...
    99+
    2022-11-11
  • IO多路复用原理(select、poll and epoll)
    IO多路复用首先要理解什么是多路?什么是复用? 多路:核心需求是要用尽可能少的线程来处理尽可能多的连接,这里的多路是指需要处理的众多连接。 复用:核心需求是要求使用尽可能少的线程,尽可能减少系统开销去处理尽可能多的连接,那么这个复用是指利用...
    99+
    2023-10-01
    服务器 linux
  • Linux IO多路复用之epoll网络编程
    前言 本章节是用基本的linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下: 客户端从标准输入读入一行,发送到服务端 服务端从网络读取一行,然后输...
    99+
    2022-06-04
    linux epoll linux io多路复用 linux io多路复用之epoll网络编程
  • 如何从底层聊下IO多路复用模型
    本篇内容主要讲解“如何从底层聊下IO多路复用模型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何从底层聊下IO多路复用模型”吧!前言当我们去面试的时候,问到了...
    99+
    2022-10-19
  • 详解IO多路复用机制——select、poll、epoll的原理和区别
    🌟 前言 🐶 大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。 🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最...
    99+
    2023-10-11
    linux 运维 服务器
  • PHP+Socket系列之IO多路复用及实现web服务器
    本篇文章给大家带来了关于php+socket的相关知识,其中主要介绍了IO多路复用,以及php+socket如何实现web服务器?感兴趣的朋友下面一起来看一下,希望对大家有帮助。php原生socket之IO多路复用以及实现web服务器多路复...
    99+
    2023-05-14
    php socket
  • python3--IO模型,阻塞,非阻塞,多路复用,异步,selectors模块
    协程回顾协程 实际上是一个线程执行了多个任务,遇到IO就切换示例:import time import gevent def func():     print('...
    99+
    2023-01-30
    多路 复用 模块
  • BIO、NIO、IO多路复用模型详细介绍&Java NIO 网络编程
    文章目录 前言基本概念BIO过程NIO过程IO多路复用过程Java NIO编程Java NIO 核心概念Java NIO 示例 总结 前言 上文介绍了网络编程的基础知识,并基于 Jav...
    99+
    2023-08-30
    nio java 网络
  • PHP+Socket中IO多路复用及实现web服务器的方法是什么
    本篇内容介绍了“PHP+Socket中IO多路复用及实现web服务器的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php原生so...
    99+
    2023-07-05
  • BIO、NIO、IO多路复用模型详细介绍&Java NIO 网络编程
    文章目录 前言基本概念BIO过程NIO过程IO多路复用过程Java NIO编程Java NIO 核心概念Java NIO 示例 总结 前言 上文介绍了网络编程的基础知识,并基于 Java 编写了 BIO 的网络编程。我们知道...
    99+
    2023-08-16
    nio java 网络
  • 多路复用controlfile文件
    --在数据库开启的状态下做SQL>alter system set control_files='/u01/app/oracle/oradata/PROD4/PROD4/control01.ctl',...
    99+
    2022-10-18
  • 控制文件多路复用
    控制文件是oracle数据库中最重要的文件之一。它记录了数据库的名称及其他关键配置,也记录了当前数据库中所有的数据文件和日志文件的位置及状态等重要信息,是数据库启动过程中必须查找并且使用的关键文件。默认情况...
    99+
    2022-10-18
  • Python之I/O多路复用
    回顾Socket一、Socket起源:socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些so...
    99+
    2023-01-31
    多路 复用 Python
  • flume多路复用怎么写
    这篇文章主要介绍“flume多路复用怎么写”,在日常操作中,相信很多人在flume多路复用怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”flume多路复用怎么写”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-03
  • KotlinSelect协程多路复用的实现详解
    目录前言1. Select 的引入多路数据的选择串行执行协程并行执行同时监听多路结果Select 闪亮登场2. Select 的使用3. Invoke函数的妙用4. Sel...
    99+
    2022-11-13
  • Python多路复用selector模块的基本使用
    目录1. IO多路复用1.1. epoll,poll, select的比较2. selector模块的基本使用1. IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作