2020-03-06 redis IO多路复用

redis 为什么处理数据那么快?而且是单线程的。

这就是完全靠他的两把杀手锏:内存操作和IO多路复用。

IO多路复用:解释下多路就是多条网络连接,复用就是一条线程重复使用。

redis的io模型主要是基于epoll实现的

 1. epoll 没有最大并发连接的限制,上限是最大可以打开文件的数目,这个数字一般远大于 2048, 一般来说这个数目和系统内存关系很大  ,具体数目可以 cat /proc/sys/fs/file-max 察看。

  2. 效率提升, Epoll 最大的优点就在于它只管你“活跃”的连接 ,而跟连接总数无关,因此在实际的网络环境中, Epoll 的效率就会远远高于 select 和 poll 。

  3. 内存拷贝, Epoll 在这点上使用了“共享内存 ”,这个内存拷贝也省略了。

其实IO多路复用模式就是让操作系统给你监听socket套接字的变动,如果有变动就通知我们的线程,唤醒线程,线程通过线性操作,先来后到处理操作系统通知的事件集。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • IO多路复用 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由...
    wh4763阅读 2,503评论 0 4
  • IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous)...
    可笑的黑耀斑阅读 1,227评论 0 2
  • 必备的理论基础 1.操作系统作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口。 管理调度进程,并将多个进程对硬件...
    drfung阅读 3,588评论 0 5
  • I/O复用模型多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和pol...
    Catcher07阅读 2,451评论 0 4
  • 作者:黄湘龙 IO在计算机世界中地位举足轻重,IO效率一直是码农们孜孜不倦最求的目标。本文我们一起来研究下Linu...
    楚骧阅读 1,309评论 0 2