hello云胜

技术与生活

0%

redis的单线程:

我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。 但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执 行的。

Redis的网络模式是单reactor模式。select/epoll 提供了基于事件的回调机制。IO多路复用。

和netty的主从Reactor的区别在于,netty单线程处理IO,线程池处理业务。redis是一个线程处理io和业务。

据说redis6.0推出了多线程。和netty很像了,搞一个单独的线程处理io。

再联想到了dubbo的dispacher,all模式下就是这样io和业务请求都交给业务线程池处理了。message模式下二者分离开。