redis是个单线程的程序,为什么会这么快呢?

https://www.zhihu.com/question/19764056

总体来说快速的原因如下:
1)绝大部分请求是纯粹的内存操作(非常快速)
2)采用单线程,避免了不必要的上下文切换和竞争条件
3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。

epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间 这3个条件不是相互独立的,特别是第一条,如果请求都是耗时的,采用单线程吞吐量及性能可想而知了。应该说redis为特殊的场景选择了合适的技术方案。

作者:彭伟
链接:https://www.zhihu.com/question/19764056/answer/13364800
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,666评论 25 708
  • NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也...
    闪电是只猫阅读 3,164评论 0 7
  • 本文的讨论,暂时忽略redis数据结构和算法层面的东西。 目录 redis如此之快的原因 redis server...
    tafeng阅读 10,416评论 0 6
  • 夏天到了,裙子成了我们的新宠,但是简单的一条裙子已经满足不了时尚界的野心了,这不,裙子套裙子的新穿扮来了,学会的话...
    曾经的你和我阅读 428评论 2 0
  • 读书四问: 1、这本书的主题? 讲述阅读的四种层次,以及每种层次所需要的、截然不同的阅读方法。 2、作者的主要声明...
    二郎会阅读 189评论 0 0