redis用一个线程怎么处理的i/o多路复用
来源:4-1 Redis简介

别不知足
2019-04-03
翔仔老师,您好。
redis是用一个主线程处理所有网络连接之后,在进行i/o多路复用的时候也是这一个主线程在执行吗?我看网上说的意思好像也是一个线程在执行,但是我想如果一个线程在执行i/o操作的话,不还是堵塞了吗。。。相当于一个主线程在执行i/o,而这个主线程还需要等待i/o执行之后再执行新的网络连接的操作。。。 我理解应该是有问题,请老师帮忙解答一下。谢谢翔仔老师
写回答
1回答
-
同学好,首先redis是在内存中进行的i/o操作,因此相比硬盘的处理时间,完全不是一个数量级的,其次,它通过监听处理流,哪个流准备完毕才开始处理(即确定能处理了才开始处理);同学说的i/o我理解应该是持久化相关的硬盘操作,持久化的话通常情况下redis会fork出子线程来处理的。
012019-04-08
相似问题