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

Redis单线程模型(含面试题)

redis对于所有请求的处理时只使用一个线程,但是会在处理网络IO时使用多个线程。

redis能够使用单线程模型很好的工作,原因主要在于redis的核心业务逻辑,都是“短平快”的,不太消耗cpu资源,自然而然处理请求时就不太需要吃多核。

单线程弊端:必须特别小心,某个操作占用时间长,就会阻塞其他命令的执行。

经典面试题

redis虽然是单线程模型,为啥效率这么高,速度这么快呢?

首先效率高和速度快是要有参照物的,一般是相较于mysql,oracle,sql server等数据库。

主要原因为:

1.redis是访问内存的,而数据库是访问硬盘的。

2.redis的核心功能,比数据库的核心功能更简单。

3.redis采用单线程模型,避免了一些不必要的线程竞争开销。

4.处理网路IO的时候,使用了epoll这样的IO多路复用机制。

IO多路复用:一个线程可以管理多个socket,大部分情况下客户端和服务器之间的通信也没有那么频繁,此时这么多socket大部分时间都是静默的,上面是没有数据需要传输的。同一时刻,只有少数socket是活跃的,因此只需要一个线程就能够处理得过来。

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

相关文章:

  • pytorch常用函数
  • 【MySQL数据库备份与恢复1】二进制日志,mysqlbinlog
  • Linux Wlan 无线网络驱动开发-scan协议全流程详解
  • 企业安全基石:解锁等保测评的战略价值
  • 循环神经网络--LSTM模型
  • 15.2 DeepSpeed显存优化实战:7B大模型训练资源从84GB压缩到10GB!
  • 11-day08文本匹配
  • Cisco 主模式配置
  • 综合实验(4)
  • 光猫配置DMZ到路由器
  • OSPF多区域介绍
  • 使用 Elastic Observability 监控 Proxmox VE 部署
  • Linux命令基础完结篇
  • 【实时Linux实战系列】基于实时Linux的机器学习应用开发
  • 大模型微调学习笔记(基于讯飞星辰MaaS速学版)
  • Java 中 Future 与 Callable 的使用详解
  • pycharm在virtual环境下安装依赖失败的解决方案
  • 面试150 搜索二维矩阵
  • Mirauge3D 赋能:全自动建模,让城市规划与建筑设计拥有高分辨率实景三维模型
  • OpenHands:Manus 最强开源平替——本地部署与实战指南
  • KTH5791——3D 霍尔位置传感器--鼠标滚轮专用芯片
  • 【Ollama】open-webui部署模型
  • 高通平台基线升级时,从Android 13升级到Android 15遇到的selinux权限不生效问题分析
  • 【矩阵专题】Leetcode54.螺旋矩阵
  • Linux基础服务(NTP/Chrony)
  • 红队视角:实战渗透测试中漏洞利用的进阶技巧与防御
  • Python Playwright库详解:从入门到实战
  • 虚拟电厂——解读69页 2024虚拟电厂售电业务及共享储能等新型业态趋势【附全文阅读】
  • C 语言核心知识点详解:函数调用、数组传参与变量特性
  • 力扣20:有效的括号