Redis IO多路复用

Redis IO多路复用

在这里插入图片描述

redis单线程的理解

单线程的本质其实是图中文件时间处理器是单线程的。

首先要理解redis的操作流程,redis是通发送指令来完成操作的,具体可以分为,发送指令,执行指令以及返回结果大概的按个步骤,但是,当同时多个redis连接的时候呢,多个指令不会同时执行,而是提前进入了一个队列,有点像BIO的执行模式,最后通过队列里面一个个去执行命令,然后在返回结果。

IO多路复用模型(事件驱动)

根据上面的图来讲解IO多路复用的模型
当客户端发送redis执行请求的时候,这里其实是用socket技术来连接的,会产生AE_READDAABLE事件(可以理解成执行IO多路复用的程序)。最重要的是多路复用程序是不断监听socket连接的,不存在阻塞的问题,在后面一步呢,把所有的socket对象存在放队列里面,再执行文件时间处理程序。文件事件处理程序是单线程模型,主要做解析redis指令,通过文件派发器给处理相应指令的程序,最后返回结果。
所以说本质来说redis单线程的本质是文件事件处理程序是单线程的。

多路复用的四种模型

select模型

redis内部的socket会把客户端传来的对象交给系统内核,系统内核不断便利socket实施监听 最后返回结果的时候再从内核返回刀外部socket

epoll模型

跟select相比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小盆友你是否很有多问号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值