当前位置: 首页 > article >正文

关于Redis单线程模型以及IO多路复用的理解

IO多路复用 -> redis主线程 -> 事件队列 -> 事件处理器

在这里插入图片描述

1.IO多路复用机制的作用:

操作系统的多路复用机制(如 epoll、select)负责监听多个文件描述符(如客户端连接)上的事件。

当某个文件描述符上的事件就绪时(如客户端发送数据、可以写响应等),操作系统会将这些事件标记为就绪并通知 Redis。

通知的结果是将就绪的事件列表返回给 Redis 的主线程。

2.Redis 主线程负责将事件放入队列

主线程通过调用多路复用函数(如 epoll_wait)获取就绪的事件。

Redis 主线程将这些就绪事件处理为任务,并加入到内部的 事件队列 中,准备依次处理。

主线程不仅负责将事件放入队列,还负责按顺序从队列中取出事件并执行逻辑。

3.Redis 主线程在处理事件时依赖于 事件处理器(handler)

主线程会从事件队列里面取出事件,分发给不通过的事件处理器进行处理。

每个事件处理器都是一个函数指针,当一个事件就绪时,主线程会调用相应的处理器来完成操作。

常见的事件处理器类型包括:
读事件处理器:当客户端发送请求时,主线程会将读事件交给读取请求的处理器。
写事件处理器:当处理完请求后,主线程会将响应数据写回客户端,交给写事件的处理器。
定时事件处理器:用于周期性地执行 Redis 内部的任务,如过期键删除。


http://www.kler.cn/a/403644.html

相关文章:

  • 【青牛科技】 GC3910:摇头机、舞台灯、Printer 和白色家电的理想驱动芯片是A3909/ALLEGRO 的优质国产替代
  • git自动转换换行符问题
  • python实现了一个基于深度学习的少样本视觉识别任务,并涉及到领域自适应(Domain Adaptation)的相关操作
  • uniapp 选择 省市区 省市 以及 回显
  • 【PPTist】开源PPT编辑器初体验
  • `ls -l ~/.ssh` 命令将列出 `.ssh` 目录中所有文件
  • 【ChatGPT】实现贪吃蛇游戏
  • 【加入默语老师的私域】C#面试题
  • JAVA:探索 PDF 文字提取的技术指南
  • Spring Boot技术在实验室信息管理中的应用
  • php交友源码交友系统源码相亲交友系统源码php社交系统php婚恋源码php社区交友源码vue 仿交友社交语聊技术栈
  • 图文解说:MySQL核心模块知识和流程
  • 持续集成与持续部署:CI/CD简介
  • 机器学习—正则化和偏差或方差
  • 网络安全知识点
  • 网络安全服务(Network Security Services, NSS)
  • 重构代码之内联类
  • uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)
  • Selenium + 数据驱动测试:从入门到实战!
  • Chapter 2 - 16. Understanding Congestion in Fibre Channel Fabrics