Redis的事件
1.事件类型
redis事件主要有两类,一个是文件事件,一个是时间事件,文件事件主要是来源于客户端的命令请求,时间事件主要来源于系统内部的处理
2.文件事件
文件事件的处理是基于Reactor模式实现的,主要分为对于读事件和写事件的处理,相关的处理器主要是三个,客户端连接时的连接应答处理器,客户端命令请求时的命令请求处理器,以及命令处理完成时的命令回复处理器。
从客户端连接到命令处理完成的整体流程可以使用下图来概括:
3.时间事件
时间事件分为定时事件和周期性事件,如果是定时事件,执行完成后会进行删除,而周期性事件在执行完成后会更新下一次到达的时间。
时间事件的主要工作包括:
a.更新服务器的各类统计信息,如时间、内存占用、数据库占用情况等
b.清理数据库中过期的键值对
c.尝试进行AOF或者RDB持久化操作
...
4.文件事件与时间事件的调度
当Redis服务启动后,会优先执行文件事件,然后查询最近的时间事件,如果没有时间事件到达,那么会继续等待文件事件的处理,等待的最大超时时间为最近的时间事件,这样即可以避免对时间事件的频繁轮询,也可以确保不会阻塞过多的时间。
进一寸有进一寸的欢喜。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构