当前位置: 首页 > article >正文

Redis单线程为什么能这么快

1.Redis大部分操作发在内存中完成

2.选择了很多高效的数据结构,一种对象底层有几种实现以应对不同场景

3.Redis采用了多路复用机制,一个线程监听多个通道,能并发处理大量的客户端请求

每次客户端与服务端进行连接,会生成一个文件描述符file description

主要是第三点,单线程我们会在哪里阻塞,多路复用又帮了我们什么?

Redis在内存中处理数据,I/O是瓶颈之一

一般来说,客户端发送数据,我们需要三个过程来进行读取,分别是

accept → 建立连接成功 1

recv → 接受数据成功 2

parse

套接字是默认阻塞的

一般1和2都会产生时间进行阻塞

我们使用非阻塞模式,如果没数据,就不会阻塞在那里

然后我们通过一个循环来不断轮询(不断检查各个IP通道的状态,决定操作是否需要执行)

IO多路复用

每次IO操作触发,产生通知,通知就会触发另外一些操作

→进行封装→Reactor模型


http://www.kler.cn/a/513189.html

相关文章:

  • 【回忆迷宫——处理方法+DFS】
  • Keep 实战指南:构建强大的AIOps和告警管理平台
  • 【NLP基础】Word2Vec 中 CBOW 指什么?
  • Linux-C/C++--深入探究文件 I/O (下)(文件共享、原子操作与竞争冒险、系统调用、截断文件)
  • 写作利器:如何用 PicGo + GitHub 图床提高创作效率
  • 蓝桥杯3525 公因数匹配 | 枚举+数学
  • grafana+prometheus监控linux指标
  • 美区TikTok解封后如何回归使用?
  • 软件授权产品介绍
  • 算法题目总结-栈和队列
  • 数据库基础知识:理论、E-R图、事务、原则
  • 【VOS源码解析-2024CVPR-Cutie】1、train_wrapper结构解析
  • sqlmap 自动注入 -01
  • 【Linux】华为服务器使用U盘安装统信操作系统
  • 跨境电商之小程序shinecrys水晶国度小程序数据分析
  • 【HF设计模式】06-命令模式
  • Flink底层架构与运行流程
  • 2.4 kubectl命令行设置7大命令分组
  • 三轴云台之跟随模式篇
  • JAVA:策略模式(Strategy Pattern)的技术指南
  • Java泛型方法所受的限制是什么?
  • JDBC实验测试
  • 软通动力携鸿湖万联与微展世签署战略合作协议,以开源鸿蒙赋能工业创新升级
  • 【深度学习基础】多层感知机 | 多层感知机的实现
  • K8S如何让worker使用kubectl命令(RBAC方法)
  • 机器学习-核函数(Kernel Function)