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

【redis其它面试问题】

redis其它面试问题

  • redis是单线程,为什么还那么快
    • 1. ​​纯内存操作​​
    • 2. ​​单线程无锁竞争​​
    • 3. ​​使用 I/O 多路复用​​,非阻塞IO
  • 解释一下I/O多路复用模型

redis是单线程,为什么还那么快

1. ​​纯内存操作​​

所有数据存储在内存中,读写速度比磁盘快 ​​100,000倍​​ 以上(内存访问约 100ns,SSD 约 1ms)。
避免传统数据库的磁盘 I/O 瓶颈。

2. ​​单线程无锁竞争​​

单线程避免了多线程的​​上下文切换​​和​​锁竞争​​开销。

3. ​​使用 I/O 多路复用​​,非阻塞IO

解释一下I/O多路复用模型

Redis是纯内存操作,执行速度非常的快,它的性能瓶颈是网络延迟而不是执行速度,I/O多路复用模型主要就是实现了高效的网络请求

多路复用器
监听
监听
监听
读/写
读/写
fd1
调用select/epoll阻塞等待
fd2
...
启动
注册fd到多路复用器
有fd就绪?
处理就绪的fd
  • 初始化:将需要监听的fd(如Socket)注册到多路复用器(如 epoll)。
  • 阻塞监听:调用 epoll_wait 阻塞线程,直到至少一个fd就绪。
  • 事件触发:当某个fd就绪(如客户端发送数据),多路复用器返回就绪的fd列表。
  • 非阻塞处理:程序遍历就绪的fd,执行读/写操作(不会阻塞其他fd的处理)。
http://www.dtcms.com/a/296740.html

相关文章:

  • 【OD机试】矩阵匹配
  • JavaScript高级特性与优化全解析
  • JManus Plan-Act模式:如何对用户的需求进行规划和执行
  • 【第五节】列表渲染
  • p5.js 椭圆的用法:从基础到创意应用
  • Java 实现 B/S 架构详解:从基础到实战,彻底掌握浏览器/服务器编程
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十九天-模拟面试前
  • 前端学习日记(十二)
  • MongoDB常用场景
  • jax study notes[19]
  • 【Kubernetes】通过 YAML 创建 nginx Pod 并验证,流程总结
  • Python编程进阶知识之第五课处理数据(matplotlib)
  • rust流程控制
  • Code Composer Studio:CCS 设置代码折叠
  • 20.OSPF路由协议·单区域
  • 枚举右,维护左高级篇
  • [明道云] -基础入门1- 什么是明道云 HAP 平台?
  • 【基础篇一】Python Web开发的演进历程(CGI → WSGI → ASGI)
  • 100条SQL语句分类精讲:从基础到进阶的实操指南
  • Matplotlib详细教程(基础介绍,参数调整,绘图教程)
  • 支付宝小程序 SEO 优化指南:从流量获取到商业转化
  • 【Linux】常用命令(一)
  • LockscreenCredential 类方法详解
  • 机器学习入门与经典knn算法表文解析
  • 模型的存储、加载和部署
  • 天邑TY1613_S905L3SB_安卓9-高安版和非高安版-线刷固件包
  • SSE与Websocket有什么区别?
  • P1049 [NOIP 2001 普及组] 装箱问题
  • 数据采集分析:从信息洪流中掘金的科学与艺术
  • Linux和Windows基于V4L2和TCP的QT监控