page contents

redis的单线程模型如何理解?

Pack 发布于 2020-02-24 15:24
阅读 733
收藏 0
分类:nosql缓存

常说redis是单线程模型。
但当有多个redis-cli连接时,那不是多线程了吗?

例如:
客户端1,使用blpop进行阻塞式获取空列表的值时,会阻塞当前客户端。但客户端2还能连接,并且通过向list插入值,客户端1响应刚客户端2插入值。

我们常用的redis是单线程主要体现在哪里呢?

436
Pack
Pack

redis 单线程采用的多路复用,同步非阻塞式的IO模型,一个blpop进行阻塞式获取,并不是阻塞服务端,所以其他客户端可以正常连接。让服务端阻塞本质上就是同一个时间点服务端一值在处理其他客户端请求(以读为例把数据从内核态赋值到用户态),别的客户端就连接不进来了。 比如key非常多的时候,调用keys

请先 登录 后评论