分享 vivo 互联网技术干货与沙龙活动,推荐最新行业动态与热门会议。
分类: 数据库开发技术
2021-11-30 10:13:17
注:本文的代码都是伪代码,主要是为了示意,不可用于生产环境。
阻塞:指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回; 线程:系统调用的线程个数。
Reactor:类似NIO编程中的Selector,负责I/O事件的派发;
Acceptor:NIO中接收到事件后,处理连接的那个分支逻辑;
Handler:消息读写处理等操作类。
文件事件:在这里可以把文件理解为Socket相关的事件,比如连接、读、写等; 时间时间:可以理解为定时任务事件,比如一些定期的RDB持久化操作。
Redis的多线程模型是将IO操作多线程化,本身逻辑处理过程(命令执行过程)依旧是单线程,借助了单Reactor思想,实现上又有所区分。
将IO操作多线程化,又跟单Reactor衍生出多Reactor的思想一致,都是将IO操作从主线程中拎出来。
作者:vivo互联网服务器团队-Wang Shaodong