Redis作为单线程模型,为什么效率高、速度快呢?

news2024/9/21 18:14:15

前言:
效率高、速度快是相较于数据库来说的(MySQL、Orcale、SQL server)

文章目录

  • 一、单线程模式的工作流程
  • 二、为什么快?

一、单线程模式的工作流程

这里我们所说的单线程是指:Redis只使用一个线程,来处理所有的命令请求。而并不是说Redis服务器进程内部就真的只有一个进程。Redis内部其实也有多个线程,但那多个线程是在处理 网络IO

在这里插入图片描述
当前这样两个客户端,相当于“并发”的发起了上述请求,但Redis服务器实际上是单线程模型,保证了当前受到的请求是串行执行的。
在这里插入图片描述
那么为什么Redis使用单线程模型,处理业务还是这么快?
这主要取决于Reids的核心业务逻辑,Redis的核心业务逻辑都是短平快,不太消耗CPU资源,也就不太依靠核心数。
弊端
使用Redis必须小心,避免某个操作占用时间长,就会阻塞其他命令的执行。

二、为什么快?

效率高、速度快是相较于数据库来说的(MySQL、Orcale、SQL server)

  1. Redis访问内存,数据库则是访问硬盘。 这两个的速度可能会差上几个数量级。
  2. Redis的核心功能更简单。
    数据库对于数据的插入删除查询,都有更复杂的功能。(例如针对插入删除,数据库中的各种约束,都会使数据库做额外的工作)这样的功能势必会造成更多的开销
    当然消耗多就达标干的活多,这也就是为什么MySQL支持的功能要比Redis多。
  3. Redis是单线程模型,避免了一些不必要的线程竞争开销
    Redis的每个基本操作,都是短平快,只是简单操作一下内存数据,不会产生大的内存CPU开销,即使多个线程,那提升也不大。
  4. 处理网络IO时,使用了epoll这样的IO多路复用机制。
    一个线程可以管理一个socket,针对TCP来说,服务器这每服务一个客户端,就需要为这个客户端安排一个socket。那么一个服务器服务多个客户端,同时就有很多socket。但这些socket并不是无时无刻都在传输数据。大多数socket大多数时间都在静默。
    那么为一个socket分配一个线程,就显得有些浪费了。
    基于上述原因,就出现了IO多路复用–即一个线程管理多个socket

以上就是本文所有内容,如果对你有帮助的话,点赞收藏支持一下吧!💞💞💞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PPP的配置

概述:PPP模式,即公私合作模式(Public-Private Partnership),是一种公共部门与私营部门合作的模式。 一、实验拓扑 实验一:PPP基本功能 实验步骤: (1)配置AR1的接口IP地…

xilinx hbm ip运用

AXI-HBM是一个集成的IP核,该核提供高达16个AXI3从PORT的HBM接口,每个使用他自己的独立的时钟。HBM2 GEN存储器也支持,HBM相对传统DDR的方案,带宽得到极大的提高 特征 AXI3从端口存储器接口 -16个独立的256bit存储器接口 -可选的…

国标视频流媒体服务GB28181和Ehome等多协议接入的Liveweb方案详解

Liveweb视频融合/汇聚云平台基于“云-边-端”一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议(GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等)、多类型设备接入(IPC/NVR/监控平台),在视频能力上&…

企业文档管理系统哪个好?2024年热门的10款文档管理系统软件推荐

在信息化时代,企业每天都会生成海量的文档、数据和资料。 如何有效管理这些文档,确保信息安全、版本控制和协同办公顺畅,是每个企业都必须面对的挑战。 2024年,随着技术的不断进步,市场上涌现出了众多优秀的文档管理…

STM32如何修改外部晶振频率和主频

对于STM32F10x系列的单片机,除了STM32F10x_CL单片机,其它的单片机一般外部晶振HSE的时钟频率都默认是8MHz。如果我们使用的外部晶振为12Mhz,那么可以把上图绿色标记改为:12000000 72MHz的主频8MHz的外部晶振HSE*倍频系数9。当然如果像上面把外…

ChatGPT 在国内使用的方法

AI如今很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同等等,ChatGPT 真是无所不能~ 作为一款出色的大语言模型,ChatGPT 实现了人类般的对话交流,最主要是能根据上下文进行互动。 接下来,我将介绍 ChatGPT 在国…

Android-UI设计

控件 控件是用户与应用交互的元素。常见的控件包括: 按钮 (Button):用于执行动作。文本框 (EditText):让用户输入文本。复选框 (CheckBox):允许用户选择或取消选择某个选项。单选按钮 (RadioButton):用于在多个选项中…

『功能项目』QFrameWorkBug关联Slot(插槽)【67】

我们打开上一篇66QFrameWorkBug拖拽功能的项目, 本章要做的事情是关联插槽Slot 修改脚本:UISlot.cs 修改脚本:UGUICanvas.cs 此时关联Slot已经完成 接下来的文章内容: 1.QFrameWork扔到地上UGUI 2.位置存储功能 3.点击名称寻…

IBM Spectrum LSF 用户基础

获取 IBM Spectrum LSF 工作负载管理概念和操作的概述。 1、IBM Spectrum LSF 概述 LSF 如何满足您的作业需求并找到运行该作业的最佳资源。 - IBM Spectrum LSF IBM Spectrum LSF (“LSF” ,简称为负载共享设施) 软件是业界领先的企业级软件。 LSF 在现有异构 I…

【C++】内联函数(inline function)详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 语法: 在函数定义前加上关键字 inli…

2024华为杯研赛数学建模E题分析

2024华为杯数学建模E题分析如下,完整版本可查看最下方名片

基于SSM+Vue+MySQL的家教服务管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会对教育质量要求的不断提升,家教行业迎来了前所未有的发展机遇。然而,家教市场也面临着信息不对称、管理不规范、匹配效率低等挑战。为了解决这些问题,提高家教服务的质量和效率&a…

【Python】Anaconda插件:Sublime Text中的Python开发利器

上班的时候没人问我苦不苦,下班的时候总有人问为什么走这么早。 Anaconda 是一个专为Sublime Text打造的开源Python开发插件,旨在为开发者提供类似于IDE的丰富功能,提升Python编码效率。该插件提供了代码补全、语法检查、代码片段提示等多项…

U9多组织单据关连生单时的错误提示

开立采购退货单时,有以下的错误提示。从这段文字来看。生成【采购退货单】同时生成关联公司的【退回处理单】,检查退回处理单的单据类型是正常的。不明所以。系统商出来的错误提示一般是用来迷惑人的,不可尽信。 【未找到满足条件【上游推式…

工程师 - Windows下使用WSL本地安装Linux

Setting Up to Use Windows Subsystem For Linux (WSLv2) 1,WinR,运行ver命令: 我的是Win11系统,但版本还是10.xx的。要求 Windows 10 builds > 18917,才能使用WSLv2。 如果需要版本升级,请参照&#xf…

C++速通LeetCode中等第11题-除自身以外数组的乘积

方法一&#xff1a;前缀积乘后缀积 class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();vector<int> answer(length);// answer[i] 表示索引 i 左侧所有元素的乘积// 因为索引为 0 的元素左侧没有元素…

多语言长文本 AI 关键字提取 API 数据接口

多语言长文本 AI 关键字提取 API 数据接口 AI / 文本 专有模型极速提取 多语言长文本 / 实时语料库。 1. 产品功能 支持长文本关键词提取&#xff1b;多语言关键词识别&#xff1b;基于 AI 模型&#xff0c;提取精准关键词&#xff1b;全接口支持 HTTPS&#xff08;TLS v1.0 …

C一语言—动态内存管理

目录 一、为什么要有动态内存管理 二、malloc和free &#xff08;2.1&#xff09;malloc &#xff08;2.2&#xff09;free 三、calloc和realloc &#xff08;3.1&#xff09;calloc &#xff08;3.2&#xff09;realloc 四、常见的动态内存的错误&#xff08;举例均为错…

Java设计模式(工厂模式)——抽象工厂模式(完整详解,附有代码+案例)

文章目录 5.4 抽象工厂模式5.4.1 概述5.4.2 结构5.4.3 实现5.4.4 优缺点5.4.5 使用场景 5.4 抽象工厂模式 5.4.1 概述 是一种为访问类提供一个创建一组相关或相互依赖对象的接口&#xff0c;且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 同族的…

【保奖思路】2024年华为杯研赛F题保奖思路分享(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接加入【2024华为杯研赛资料汇总】&#xff1a;https://qm.qq.com/q/TPBRkrVoQyhttps://qm.qq.com/q/TPBRkrVoQy F题X射线脉冲星光子到达时间建模 问…