一天一个面试小问题 no.1 redis单线程和多线程的理解

redis单线程和多线程的理解

面试官:redis是单线程还是多线程的
我:单线程
面试官:出门左转

问题分析

首先从不同的方面去分析这个问题

redis的单线程理解

redis的单线程指的是:redis客户端与服务端的交互,分为三个阶段,发送请求,执行命令、返回响应。在这三个阶段中,在redis执行请求命令的核心模块是单线程的。所以所有到达服务端的命令不会立马执行,而是进入一个队列中。这就是redis的单线程模型。而不是说redis整个实例就只有一个线程,redis其他模块也有各自的线程。

 知识点1 scoket 套接字
应用层和数据层进行交互时,这里需要提到网络分层结构,网络大致可以分为7层、5层或者4层。
7层是指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
5层体系结构包括:应用层、运输层、网络层、数据链路层和物理层。 
4层是指TCP/IP四层模型,主要包括:应用层、运输层、网际层和网络接口层

socket套接字是一个抽象层,抽象位于应用层和ip层之间,通过它进行数据的发送以及接收

over

redis服务器也是通过socket与其他服务器或者客户端进行连接。服务器与客户端或其他服务器的通信会产生相应的文件事件,而服务器通过监听并处理这些事件来完成一系列网络通信操作。

redis单线程为什么处理速度这么快 而且具有很高的吞吐量

这主要取决于redis的操作都是在内存中进行,同时还取决于redis的I/O多路复用
“多路”指的是多个网络连接,“复用”指的是复用同一个Redis处理线程
系统通过监听多个socket,就可以实现多个请求在一个线程中交替执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值