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

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

  1. redis访问内存,数据库(mysql,oracle…)则是访问硬盘。
  2. redis核心功能,比数据库核心功能更简单。(数据库对于数据的插入,删除,查询这样的功能势必要花费更多的开销)

比如说针对插入删除,数据库中的各种约束,都会使数据库做额外的工作

  1. redis采取的单线模型,避免了一些不必要的线程竞争开销(redis的每个基本操作,都是短平快的,就是简单的操作一下内存数据,不是什么特别消耗CPU的操作,就算搞多个线程,也提升不大)
  2. redis在处理网络IO,使用了 epoll 这样的IO多路复用机制(IO多路复用机制:一个线程就可以管理多个socket(针对TCP来说,服务器这边每次要服务客户端,都需要给这个客户安排一个socket))

一个服务器服务多个客户端,同时就有多个socket
这些socket上不是无时不刻的在传输数据,大部分时间都是静默的,上面是没有数据需要传输
很多情况下,每个客户端和服务器之间的通信业没那么频繁(业务场景)

同一时间,只有少数的socket是活跃的


http://www.mrgr.cn/news/38346.html

相关文章:

  • 基于elasticsearch存储船舶历史轨迹
  • java中IO遇NIO的区别,你需要了解
  • Python中列表,元组,集合的区别
  • Failed to load WebView provider: No WebView installed
  • 悄悄告诉你,35岁不会被裁的程序员
  • ONFI 5.1:定义、缩写语和约定
  • 2024年咸宁中级职称水平测试合格公示
  • C++友元和运算符重载
  • JavaWeb图书借阅系统
  • 3-2 AUTOSAR RTE对Runnable的作用
  • 电商大变革!TikTok携手亚马逊重塑购物边界,开启海外即看即买新篇章
  • 数据结构-3.6.队列的链式实现
  • Mysql高级篇(中)——锁机制
  • C++——vector
  • 一个神级 Python 日志管理库:Loguru
  • Redis集群的两种方式
  • k8s中pod的创建过程和阶段状态
  • asynDriver-2
  • 【Python】1.初始Python--打开Python的大门
  • 探索Langchain与国内智谱清言:构建先进的智能对话系统[第二课]