零基础学习Redis(5) -- redis单线程模型介绍

news2024/9/26 3:23:39

前面我们提到过,redis是单线程的,这期我们详细介绍一下redis的单线程模型

1. redis单线程模型

redis只使用一个线程处理所有的请求,并不是redis服务器进程内部只有一个线程,其实也存在多个线程,只不过多个线程是在处理网络IO

假设有多个客户端同时操作一个redis服务器:

incr 作用是把key对应的value进行 + 1操作,在多线程中,这样的两个线程对一个变量进行写操作会导致线程安全问题,但是redis并不会,redis只会使用一个线程来指向这个两个命令,也就是这两个命令会串行执行。

因为redis的核心业务逻辑都是平短快的,所以使用单线程也能很好的工作,同时这里也提醒我们慎重使用操作时间长的操作,例如keys *

2. redis为什么快

有的人可能会疑惑,为什么redis使用单线程确还很快(面试题)

注意这里的快是相对于使用硬盘存储的数据库来说

1. redis 访问内存,数据库则是访问硬盘

2. redis 核心功能是要比数据库更简单的,数据库对数据的插入删除查询都有更复杂的功能支持

3. redis每个基本操作对cpu的消耗都不大,单线程也能很好的进行工作

4. redis处理IO的时候使用了IO多路复用机制

3. IO多路复用

IO多路复用就是使用一个线程管理多个连接

例举一个场景:

小明寝室有三个人要出去买午饭,小明想吃蛋炒饭,室友A想吃饺子,室友B想吃炒面,但是这几家店不在同一个位置,现在有几种买饭的方案:

  1. 只派一个人去买,先买蛋炒饭,等蛋炒饭做好了再去买饺子,最后去买炒面(传统的单线程,顺序执行)
  2.  三个人一起去买,各买各的(多线程)
  3. 只派一个人去买,先去买蛋炒饭,这里不等老板做好直接去买饺子,同理,然后去买炒面,哪个先做好先去拿哪个(IO多路复用)

可以看出,传统的单线程效率最慢,而多线程的话开销又太大,所以有了IO多路复用就可以让一个线程,在一个连接阻塞时去处理另一个连接,不过要注意IO多路复用适用于连接和服务器的交互不频繁,大部分时间都在等待的场景,如果交互过于频繁还是使用多线程更合理。

IO多路复用机制是操作系统提供的API实现的,Linux上主要提供了三种API:select,poll,epoll

效率最高的是epoll(事件通知/回调机制) 即连接退出阻塞时操作系统通知线程。

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

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

相关文章

MySQL常用函数、语法案例

本人MySQL5.7版本 表结构 假设有一个名为 order_summary 的表,其字段如下: order_id (INT): 订单的唯一标识符 customer_id (VARCHAR): 顾客的唯一标识符 order_date (DATETIME): 订单创建时间 total_amount (DECIMAL): 订单总金额 payment_status (E…

贪心+多维度dp

前言:处理简单版本的时候,想到了贪心,以及暴力求解顺便剪枝一下,要注意边界问题 haed版本的时候,完全行不通了,m的范围到了200,这是不可以暴力求解的 但是我不知道如何定义状态转移方程&#…

Hutool糊涂包JSON相关方法汇总

目录 1. JSON 对象 (JSONObject) 的创建 2. 向 JSONObject 添加键值对 3. 从 JSONObject 获取值 4. JSON 对象与字符串之间的转换 5. JSON 对象与 Java Bean(POJO)之间的转换 6. JSON 数组 (JSONArray) 的使用 7. JSON 数组与 Java List 之间的转…

Unity的UI设计

目录 创建和布局 布局与交互 性能优化 最佳实践 学习资源 Unity UI Toolkit与uGUI和IMGUI之间的具体区别和适用场景是什么? Unity UI Toolkit uGUI IMGUI 如何在Unity中实现响应式UI设计以适应不同设备尺寸? Unity UI性能优化的最新技术和方法…

8.MySQL知识巩固-牛客网练习题

目录 SQL228 批量插入数据 描述 SQL202 找出所有员工当前薪水salary情况 描述 示例1 SQL195 查找最晚入职员工的所有信息描述 示例1 SQL196 查找入职员工时间排名倒数第三的员工所有信息描述 SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t 描述 SQL…

后端Web之数据库多表设计

1.概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多、多对多、一对一。 数据库的多表设计是关…

JavaWeb——MVC架构模式

一、概述: MVC(Model View Controller)是软件工程中的一种 软件架构模式 ,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户…

字符串专题——字符串相乘

1、题目解析 2、算法解析 1、解法一 使用模拟的方法:模拟小学的列竖式运算 细节1:高位相乘的时候要补上“0” 细节2:处理前导“0” 细节3:注意计算结果的顺序 2、解法二 对比解法一做优化->无进位相乘然后相加&#xff0…

Huawei Matebook e 2022 安装 archlinux 双系统

本文同步发布于我的网站 安装之前 wifi 名称修改为英文数字的,以防之后没法联网 准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像。 基础安装 开机按 F2 进入 UEFI/BIOS 设置,将 Secure Boot(安全启动)关闭,按…

AI学习记录 - transformers 的 linear 词映射层的详细分析, CrossEntropyLoss 函数解析

创作不易,有用的话点个赞。。。。。。 1. 假设条件 词汇表:假设词汇表包含四个词汇:[token_0, token_1, token_2, token_3]。 模型的输出概率分布:模型的输出经过 Softmax 转换后,得到概率分布:[0.1,0.5,…

JavaScript - Api学习 Day1(WebApi、操作DOM对象)

应用编程接口 (API) 是编程语言中提供的结构,允许开发者更轻松地创建复杂的功能。、 webapi 是一套 操作网页内容(DOM) 与 浏览器窗口(BOM) 的对象Js由ECMAScript、DOM、BOM三个部分组成。 文章目录 零、前言0.1 变量声明 壹、WebAPI的认识1.1 作用1.2 什么是DOM1…

【AI大模型】解锁AI智能:从注意力机制到Transformer,再到BERT与GPT的较量

文章目录 前言一、揭秘注意力机制:AI的焦点如何塑造智能1.什么是注意力机制?2.为什么需要注意力机制? 二、变革先锋:Transformer的突破与影响力1.什么是Transformer?2.为什么Transformer如此重要? 三、路径…

《给所有人的生成式 AI 课》学习笔记(一)

前言 本文是吴恩达(Andrew Ng)的视频课程《Generative AI for Everyone》(给所有人的生成式 AI 课)的学习笔记。由于原课程为全英文视频课程(时长约 3 个小时),且国内访问较慢,阅读…

零基础转行学网络安全怎么样?

在当今数字化飞速发展的时代,网络安全已成为备受瞩目的领域。那么,对于零基础的人来说,转行学习网络安全究竟怎么样呢? 网络安全行业正处于蓬勃发展的阶段。随着互联网的普及和信息技术的不断进步,网络安全问题日益凸显。政企单位…

本地私有化部署PDF处理神器Stirling PDF并实现无公网IP远程在线访问

文章目录 前言1. 安装Docker2. 本地安装部署StirlingPDF3. Stirling-PDF功能介绍4. 安装cpolar内网穿透5. 固定Stirling-PDF公网地址 前言 本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随…

文心一言 VS 讯飞星火 VS chatgpt (328)-- 算法导论22.5 4题

四、证明:对于任意有向图 G G G来说, ( ( G T ) S C C ) T G S C C ((G^T)^{SCC})^TG^{SCC} ((GT)SCC)TGSCC。也就是说,转置图 G T G^T GT的分量图的转置与图 G G G的分量图相同。如果要写代码,请用go语言。 文心一言&#xff1…

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。 数据集有两种规格,请仔细阅读下面信息以免拍错 [1]规格一:适用于分类任务的数据集,标准的ImageNet数据集格式。注意不是txt格式的更不是xml格式的。数据集已经按照train、val划分好&am…

上海亚商投顾:沪指窄幅震荡 华为海思、猴痘概念股集体爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天窄幅震荡,三大指数涨跌不一。华为海思概念股持续爆发,世纪鼎利、天邑股份、汇…

ProGrad:Prompt-aligned Gradient for Prompt Tuning

文章汇总 存在的问题 问题1 如图(a),(b):CoOp随着训练的继续,泛化能力可能会下降,甚至低于zero-shot基线。 如图©,(d):在shot比较小的情况,即数据量比较少的情况(1-shot,2-shot),CoOp的性能可能还不…

和鲸携手山东大学数字人文实验室,推动新文科与人工智能融合发展

为深入推进产教融合与校企合作,推动人工智能在人文学科中的广泛应用与深入发展,8 月 15 日,山东大学数字人文实验室与和鲸科技 101 计划推进会暨新文科人工智能实验室标杆案例打造讨论会于威海顺利召开。山东大学数字人文实验室副主任陈建红、…