Redis 04 Reactor

Reactor 设计模式是事件驱动的并发处理模式,高效处理多个输入源的请求。多路分解事件,同步分发到处理器。

单线程 reactor 模型

redis6.0 之前采用单线程 reactor 模型。即业务线程完成网络IO及命令处理。

reactor 模型处理三类事件:

  1. 连接事件。客户端请求连接。
  2. 读事情。实例读取客户端的命令。
  3. 写事件。实例查询得到的键值对返回给客户端。

针对三类事件,Reactor 模型提出三个处理器:

acceptor:负责处理连接。建立连接后,创建 handler。

handler: 处理读写事件。

reactor:专门监听和分配事件给 acceptor 或者 handler。

redis 实例启动时,向 reactor 注册连接事件,reactor 监听客户端发起的连接事件。

客户端发起连接请求,reactor将连接事件分发给 acceptor 处理器。处理器将连接所关系的读事件注册到 reactor 。

客户端发送命令,reactor 监听到读事件,将读事件分发给读处理器。

多线程 reactor 模型

redis 的性能瓶颈在网络IO。因此 redis6.0 之后采用多线程 reactor 模型。

即业务线程将 IO 事件交给IO线程处理。业务线程只处理事件分发和读取数据。

相关推荐
AIgorithmGEEK4 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
行百里er6 小时前
Redis 完结篇——Redis 热点问题在 Spring Boot 项目中实战
redis·后端
唠点键盘之外的7 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨7 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76897 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉7 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10248 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑9 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu9 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__9 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧