Redis事件机制[亲测有效]

Redis事件机制[亲测有效]Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件:Redis通过套接字与客户端连接,文件事件是服务器对套接字操作的抽象。 时间事件:Redis服务器中的一些操作需要给定的时间

Redis事件机制

Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:

  • 文件事件:Redis通过套接字与客户端连接,文件事件是服务器对套接字操作的抽象。
  • 时间事件:Redis服务器中的一些操作需要给定的时间点执行,时间事件时对这类定时操作的抽象。

文件事件

文件事件处理器使用I/O多路复用同时监听多个套接字。

文件事件处理器的构成

文件事件处理器的四个组成部分:套接字、I/O多路复用程序、文件事件分派器以及事件处理器。

image

文件事件是对套接字操作的抽象,每当一个套接字准备好执行连接应答(accept)、写入、读取、关闭等操作

时,就会产生一个文件事件。一个服务器会连接多个套接字,所以多个文件事件可能并发出现。

I/O多路复用程序负责监听多个套接字。尽管会并发,但是产生事件都放到一个队列里,以有序、同步、每次一个

套接字的方式向分派器传送套接字。

I/O多路服用程序的实现

通过包装select、epoll、evport和kqueue这些函数库来实现的。提供相同的API,可以互换。

文件事件的处理器

连接应答器

请求处理器

命令回复器

复制处理器

时间事件

未完待续

Reference

《Redis设计与实现》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5813.html

(0)
上一篇 2023-04-23 18:30
下一篇 2023-04-23 20:30

相关推荐

  • 数据库备份与恢复_mysql 定时备份

    数据库备份与恢复_mysql 定时备份在云计算的浪潮下,企业多将业务部署在云上。对于数据库中的数据,直接使用云数据库自带的备份功能实现备份,操作简单。但是云数据库备份数据的存储空间有限制,一旦超出存储量便自动关闭备份功能,运维人员往往也…

    2022-12-15
    154
  • mac配置tomcat环境变量_终端安装过程

    mac配置tomcat环境变量_终端安装过程Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。Tomc

    2022-12-30
    171
  • 数据分析师需要学哪些课程_python做大数据分析

    数据分析师需要学哪些课程_python做大数据分析数据分析 参考python数据分析与挖掘实战-张良均著 数据探索 数据质量分析 缺失值分析 异常值分析 一致性分析 利用箱线图检验异常值,可以看出数据的分布范围大致情况,和1/4值、1/2值、3/4值

    2023-05-08
    152
  • 用Python生成UUID

    用Python生成UUIDUUID是通用唯一标识符(Universally Unique Identifier)的缩写,是一组按照指定算法生成的字符串,用于对一些需要唯一标识的信息进行标识。UUID是由一组32位的十六进制数字所组成,通常用横线分隔,形如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,在计算机领域被广泛应用。

    2024-05-27
    68
  • SQL Server 中的异常处理「建议收藏」

    SQL Server 中的异常处理「建议收藏」为什么我们需要 SQL Server 中的异常处理? 让我们通过一个示例来了解 SQL Server 中异常处理的必要性。因此,创建一个 SQL Server 存储过程,通过执行以下查询来除以两个数字

    2023-05-26
    154
  • 颜值超高的4款可视化大屏类工具[亲测有效]

    颜值超高的4款可视化大屏类工具[亲测有效]数据可视化工具数不胜数,只看颜值的话,这4款才是我的心头好。

    2023-05-31
    149
  • Python工程师必备:pipwhl安装教程

    Python工程师必备:pipwhl安装教程Python是一种解释性、面向对象、高级程序设计语言,与其他语言相比,Python几乎可以应用于任何领域,其强大的生态系统也为Python的发展提供了强大的动力。尤其是在机器学习、Web应用程序、游戏开发、科学计算和数据分析等领域,Python表现出了极高的可靠性和高效性。

    2024-06-06
    45
  • redis的lpush_redis基本数据结构及底层实现

    redis的lpush_redis基本数据结构及底层实现你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题:
    我的 Redis 内存为什么增长这么快?
    为什么我的 Redis 操作延迟变大了?
    如何降低 Redi

    2023-05-04
    260

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注