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

Redis是单线程性能还高的原因

Redis是单线程

Redis单线程是指Redis的网络IO和键值对读写是由一个线程完成的,其他功能还是使用多线程执行

Redis主干业务使用单线程的原因

Redis本质就是一个大的共享资源,共享资源是需要对其进行并发控制的,即使增加了线程,大部分线程也是在等待互斥锁,并行变串行,而且还需要进行并发控制,反而效率变慢了
所以Redis网络IO和键值对读写采用单线程反而效率是最高的

Redis性能高的原因

1、Redis的大部分操作在内存上完成,再加上它采用了高效的数据结构

2、Redis采用多路复用机制,其在网络IO操作中能并发处理大量的客户端请求,实现高吞吐率

Redis多路复用机制运行过程

Redis是使用网络IO进行数据请求和返回的,网络IO中socket由分为读和写

socket和线程是两个概念,可以理解为socket是一个网络通信的通道提供读写操作的,线程是处理这些操作的

传统堵塞IO,是Redis需要处理完一个socket请求,等待它返回,最后得到结果,再处理下一个

传统非阻塞IO则是一直遍历socket请求是否成功,如果成功就返回,如果失败不返回,一直轮询,最早的Redis就是采用的这一方式

现在的多路IO复用是指我现在使用单线程管理多个socket,使用事件监听的方式监听每个socket,那个socket可以返回数据了,就直接使用内核通知线程返回

http://www.dtcms.com/a/320855.html

相关文章:

  • SiLM92108高度集成8通道门极驱动,赋能汽车与工业电机精准控制
  • 【SpringBoot】SpringBoot配置
  • Go语言实战案例:用net/http构建一个RESTful API
  • 微信小程序功能 表单密码强度验证
  • 主播生活模拟器2|主播人生模拟器2 (Streamer Life Simulator 2)免安装中文版
  • 具身智能模型赋能工业巡检:Deepoc开发板如何重塑机器人认知边界
  • AI搜索引擎——DeepSeek崛起 || #AIcoding·八月创作之星挑战赛# || 简单版
  • 嵌入式硬件接口总结
  • 免费PDF翻译 离线自建
  • 免费PDF批量加密工具
  • 麦肯锡如何围绕AI有效地重塑业务
  • 2025产品经理接单经验分享与平台汇总
  • 腾讯云 CodeBuddy IDE:可以使用gpt5的ide
  • 如何将视频转为GIF格式,3大视频转为GIF工具
  • RAG上下文工程与提示词优化
  • 全栈:Tomcat 安装教程
  • Servlet技术详解(含Tomcat)未完
  • 论文阅读:User Behavior Simulation with Large Language Model-based Agents
  • 如何实现在多跳UDP传输场景,保证单文件和多文件完整传输的成功率?
  • 人工智能之数学基础:事件独立性
  • mysql/doris如何高效删除历史数据
  • SimpleMindMap:一个强大的Web思维导图
  • 【性能测试】-2- JMeter工具的使用
  • 文件结构树的├、└、─ 符号
  • 数据仓库知识
  • apache cgi测试
  • 【FastExcel】解决ReadSheet在Map中获取对象不准确问题(已提交PR并合并到开源社区)
  • SARSA算法详解:从实践到理论的全面解析
  • 软件包管理、缓存、自定义 YUM 源
  • selenium SessionNotCreatedException问题解决办法