Redis的I/O多路复用

Redis是单线程的,为什么还那么快?

1.redis是基于内存的

2.redis使用I/O多路复用模型

关于I/O多路复用:

  • 多路:多个客户端连接
  • 复用:使用单线程就能够实现同时处理多个客户端的连接

单线程去监控多个Socket,当有某个Socket可读可写是回返回通知,避免无效等待,一旦有请求到达,就会交给Redis线程处理,实现了Redis单线程处理多个IO流的效果

Redis监听Socker的方式用:

  • select
  • poll
  • epoll

select和poll是按照轮询的方式去查找就绪的Socker,而epoll能精准的找到就绪的Socker并把它写入用户空间,不用挨个遍历Socket来判断是否就绪,提升了性能

Redis的网络模型

IO多路复用模型+事件派发处理器

Redis6.0以后引入了多线程

对接收参数转化指令和命令回复做了优化,减少了网络IO导致性能下降的问题。不过命令执行的时候仍然是单线程的

相关推荐

  1. Redis——IO复用

    2024-04-10 19:52:02       61 阅读
  2. IO复用

    2024-04-10 19:52:02       65 阅读
  3. IO复用

    2024-04-10 19:52:02       32 阅读
  4. io复用

    2024-04-10 19:52:02       27 阅读
  5. IO复用--epoll

    2024-04-10 19:52:02       45 阅读
  6. IO 模型(BIO、NIO、复用)

    2024-04-10 19:52:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 19:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 19:52:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 19:52:02       82 阅读
  4. Python语言-面向对象

    2024-04-10 19:52:02       91 阅读

热门阅读

  1. 题目 2967: 因子分解

    2024-04-10 19:52:02       32 阅读
  2. 软件测试八股文:alpha测试详解

    2024-04-10 19:52:02       38 阅读
  3. 通用MCU使用查表计算正弦值sin和查看计算时间

    2024-04-10 19:52:02       44 阅读
  4. 数据持久化 1 - PlayerPrefs

    2024-04-10 19:52:02       33 阅读
  5. 递推算法4(c++)

    2024-04-10 19:52:02       32 阅读
  6. [HDCTF 2023]Normal_Rsa(revenge)(素数分解)

    2024-04-10 19:52:02       34 阅读
  7. 详解Vue3中如何使用动态组件

    2024-04-10 19:52:02       23 阅读
  8. vue中this.$nextTick的作用

    2024-04-10 19:52:02       31 阅读
  9. QT4和QT5区别

    2024-04-10 19:52:02       35 阅读
  10. 第十一章-Broker-消息存储(二)

    2024-04-10 19:52:02       33 阅读