美文网首页
为什么单线程Redis还能这么快

为什么单线程Redis还能这么快

作者: 杨鑫科 | 来源:发表于2018-10-09 19:22 被阅读0次

为什么Redis使用单线程模型会达到每秒万级别的处理能力呢?可以将其归结为三点:

  1. 纯内存访问Redis将所有数据放在内存中,内存的相应时长大约为100ns,这是Redis达到每秒万级别访问的重要基础。
  2. 非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间。
  3. 单线程避免了线程切换和竞态产生的消耗。
Redis I/O多路复用
  • 在 I/O 多路复用模型中,最重要的函数调用就是 select,该方法的能够同时监控多个文件描述符的可读可写情况,当其中的某些文件描述符可读或者可写时,select 方法就会返回可读以及可写的文件描述符个数。
  • 关于 select 的具体使用方法,在网络上资料很多,这里就不过多展开介绍了;与此同时也有其它的 I/O 多路复用函数 epoll/kqueue/evport,它们相比 select 性能更优秀,同时也能支撑更多的服务。
单线程的好处:
  1. 单线程可以简化数据结构和算法的实现。
  2. 单线程避免了线程切换和竞态产生的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。
但是单线程有一个问题:

对于每个命令的执行时间是有要求的。如果某个命令执行过长,会造成其他命令的阻塞,对于Redis这种高性能的服务来说是致命的,所以Redis是面向快速执行场景的数据库。

相关文章

  • Java-分布式框架-redis-1

    Redis核心原理 Redis的单线程和高性能 Redis 单线程为什么还能这么快? 因为它所有的数据都在内存中,...

  • 3:高性能IO模型:为什么单线程Redis能那么快?

    1:Redis单线程的概念? 2:Redis使用单线程和多线程对比? 3:Redis使用单线程为什么这么快? 4:...

  • 一篇文章完全理解Redis为什么这么快

    单线程架构 Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库. 为什么单线程还能这么快? 纯...

  • redis 优化

    Redis 单线程为什么还能这么快? 因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多...

  • redis单线程为什么这么快?

    redis单线程为什么这么快? 快的原因: 首先redis不是完全单线程的,一些耗时操作也会异步去处理,比如持久化...

  • 为什么单线程Redis还能这么快

    为什么Redis使用单线程模型会达到每秒万级别的处理能力呢?可以将其归结为三点: 纯内存访问Redis将所有数据放...

  • Redis查漏补缺:最易错过的技术要点大扫盲

    本文围绕以下几点进行阐述: 为什么使用Redis 使用Redis有什么缺点 单线程的Redis为什么这么快 Red...

  • 简介redis之单线程

    前言 我们总能看到也总能遇到这些问题 Redis是单线程的吗?为什么单线程的Redis会这么快? 首先我们要厘清一...

  • Redis 面试题汇总

    Redis 为什么这么快?延伸问题:Redis 是单线程的吗? Redis 本身是基于内存操作的,不需要进行磁盘的...

  • Redis 总结精讲

    本文围绕以下几点进行阐述 1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4...

网友评论

      本文标题:为什么单线程Redis还能这么快

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