Redis为什么单线程Redis有这么高的效率(多路IO复用技术)

12 篇文章 0 订阅

多路IO复用技术

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个
文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行
(比如使用线程池)

简单说就是所有的请求到了Redis全部会被监视准备完成的请求会直接交给Redis处理,所以Redis一直在处理请求,而没有了接受到请求等待请求结束的这个阻塞状态.

简单的介绍一下阻塞IO 非阻塞IO 多路IO复用
阻塞IO: 这个线程会等待资源就绪 再去执行其他操作
非阻塞IO: 这个线程不会等待这个资源是否就绪 可以再去访问其他资源
多路IO复用:
相当于找了一个监视器 监视所有资源/请求 在资源准备期间 线程可以处理其他事情
多路IO复用有三种
select: 就是每个请求来 一个一个通讯 资源是否准备就绪 如果资源准备就绪就交给Redis处理 没有就继续通讯其他请求 select的性能有限 一次最多监视1024个请求
poll: 与select相同 但是没有数量上的限制
epoll: 他会为每个资源设置一个表示符 只要看资源的表示符 准备完毕就可以交给Redis处理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值