美文网首页Redis
Redis学习笔记(四)线程模型

Redis学习笔记(四)线程模型

作者: 那些年搬过的砖 | 来源:发表于2020-11-22 20:44 被阅读0次

    前言

    可能所有人都知道,Redis采用了单线程的模型设计,单线程又是如何做到每秒百万级的客户端请求的呢?4.0+版本之后引入了多线程,是放弃了单线程设计模型吗?实际上无论是早起的单线程模型还是后期的多线程模型,设计上并没有根本性的冲突。

    Redis单线程模型

    Redis虽然采用了单线程模型,但是依然能够并发的处理任务,关键在于采用了IO多路复用技术,最重要的select函数就是利用多路复用同时监控多个FD(文件描述符)的状态,当有FD可读或可写时通知select进程。
    select整体对外表现为阻塞式,但是通过多路复用达到同时处理多个用户请求的目的。

    Redis顶层设计理念
    另外Redis并不是CPU密集型的服务,性能瓶颈主要是网络延迟或等待客户端数据传输(网络I/O)。
    基于以上一些特性,redis采用单线程依然能够满足高并发的处理需求。

    Redis多线程模型

    Redis在4.0版本之后引入了多线程的概念,但是与之前的单线程模型实际上并不冲突,这些额外的线程是用于一些异步处理操作,比如删除过期数据等。主处理线程依然采用单线程模型。

    PS:个人对redis的多路复用理解的比较浅薄,有时间再深入学习操作系统的IO多路复用原理,相信会对redis的多路复用会有更深刻的认识。

    相关文章

      网友评论

        本文标题:Redis学习笔记(四)线程模型

        本文链接:https://www.haomeiwen.com/subject/qncpiktx.html