面试官:为什么 Redis 6.0 之后引入多线程?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。

回答

Redis 的性能瓶颈从来都不是 CPU,是网络I/O 和内存。

内存好解决,加机器内存和优化数据结构。

网路 I/O 的优化才是大头,因为读写网络的 read/write 系统调用占用了Redis执行期间大部分CPU时间,如果能够将这部分多线程化,则会大大提高 Redis 的性能。

故而,Redis 6.0 引入 I/O 多线程模型,但是它只对网络的部分采用了多线程,数据的读写依然是单线程。

总结就是:将主线程 IO 读写任务拆分出来给一组独立的线程处理,使得多个 socket 读写可以并行化,但是 Redis 命令还是主线程串行执行。

扩展

根据测算,Redis 将所有数据放在内存中,内存的响应时长大约为 100 纳秒,对于小数据包,Redis 服务器可以处理 80,000 到 100,000 QPS,这么高的对于 80% 的公司来说,单线程的 Redis 已经足够使用了。

但是,随着越来越复杂的业务场景,有些公司动不动就上亿的交易量,因此需要更大的 QPS。经过分析 Redis 的性能瓶颈主要体现在网络 IO 的处理上。所以 Redis 引入多线程来优化网络 I/O 的处理。

客户端发送一条请求给 Redis 后,Redis 的处理过程分为四个步骤:读取请求、解析请求、数据读写、响应写回,在 Redis 6.0 之前这个过程统一由主线程处理,Redis 6.0 多线程后,处理过程如下:

所以,Redis 6.0 引入的多线程只⽤来处理处理网络数据的读写和协议解析,而数据读写依然采用由主线程来处理,主要原因大明哥认为有如下几个:

  1. 数据读写为纯内存操作,速度极快,不是性能瓶颈所在。
  2. 如果使用多线程来处理数据读写,则需要多线程的数据安全机制,使得模型变得更加复杂,难以维护。
  3. 多线程带来的资源竞争和上下文切换的消耗会得不偿失。

本文已收录到我的技术网站:https://www.skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

U盘格式化怎么办?这4款软件可以帮你进行数据恢复。

如果你的U 盘被格式化,里面的数据就会被清除掉了。有备份的话,就不用担心丢失那些重要的数据;如果没有备份,也有办法解决;可以用电脑自带的一些功能恢复,或者是使用专业的恢复软件。如果大家有需求&#xf…

【MTC拾取放置示例】将Connect中的最大目标偏差检查增加到1e-2,实现move to pick/move to place

问题描述 在运行Moveit2使用MTC构建拾取放置示例Pick and Place with MoveIt Task Constructor的时候出现报错 move to pick规划失败 “The computed trajectory is too short to detect jumps in joint-space. Need at least 10 steps, only got 2. Try a lower max_step”…

自带线充电宝哪个牌子质量好性价比高?口碑最好自带线充电宝

在如今这个快节奏的时代,手机等电子设备已经成为我们生活中不可或缺的一部分。然而,电量不足的困扰时常让我们陷入尴尬境地。自带线充电宝的出现,无疑为我们解决了这一难题。它不仅方便携带,无需再额外携带充电线,而且…

iphone16-iphone16pro原壁纸分享

iphone16-iphone16pro原壁纸分享 苹果公司在2024年9月10日的秋季新品发布会上正式推出了iPhone 16系列智能手机。以下是iPhone 16系列的主要特点和更新: 全新A18芯片:iPhone 16系列搭载了苹果最新的A18芯片,这款芯片专为苹果智能(…

2024年CCPC网络赛K题题解 —— 取沙子游戏(gym105336K)

比较新的一类博弈题,考虑对因子的处理。题面: 在网络赛以前,我曾经做到过一道类似的题目: Bob和Alice和两堆石头,一堆有s1个,另一堆有s2个,然后Alice先手,每个人每次可以选择一堆石头…

【NVMe SSD寄存器、数据结构】NVMe Controller 重要寄存器、SSD内部跟NVMe相关的重要数据结构解析

前言 NVMe Controller会将一些重要的信息(NVMe控制器的能力,状态,Admin SQ, CQ地址等)直接放在NVMe寄存器中,另一部分(跟SSD比较相关的)信息会放置在SSD内部,并最终通过Admin NVMe …

UML的图及其他图补充

一、UML图 1.类图 ‌类图‌是统一建模语言(UML)中的一种静态结构图,主要用于描述软件系统的静态结构。它显示了模型中的类、类的内部结构以及它们与其他类的关系。类图是面向对象建模的主要组成部分,用于对系统的词汇进行建模、对…

C++day7

一、思维导图 二、模板类实现myStack和myQueue #include <iostream>using namespace std;template <typename T> class MyStack { private:T* arr;int capacity;int topIndex;public:MyStack(int size);~MyStack();void push(const T& value);void pop();T to…

无线通信 | 射频校准的概念、作用和步骤以及相关仪器

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、射频校准 1、射频校…

面向物联网基础的智能农业环境的节能边缘-雾-云计算架构

这篇论文的标题是《Energy-Efficient Edge-Fog-Cloud Architecture for IoT-Based Smart Agriculture Environment》&#xff0c;作者是Hatem A. Alharbi和Mohammad Aldossary&#xff0c;发表在IEEE Access期刊上。论文的主要内容可以概括为以下几个部分&#xff1a; 摘要&am…

戏曲文化苑管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;操作日志管理&#xff0c;基础数据管理&#xff0c;公告管理&#xff0c;戏曲管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#xff1a;系统首页&#…

vue 使用vue-quill-editor 富文本添加源码模式,查看源码功能和表格功能

今天接到个需求&#xff0c;在富文本中增加查看源码和增加表格功能&#xff0c;感觉这种功能手拿把掐&#xff0c;但是奈于平时沉迷于移动端有段时间没写pc了&#xff0c;看了下官方感觉一个头两个大&#xff0c;于是在茫茫文档中各种借鉴&#xff08;抄袭&#xff09;完成了功…

口袋微店多店铺管理解决方案:甜羊浏览器的应用

#### 前言 随着移动互联网的快速发展&#xff0c;口袋微店成为了众多商家首选的在线销售平台。然而&#xff0c;对于拥有多个口袋微店店铺的商家而言&#xff0c;如何高效地管理这些店铺成为了一大挑战。为了帮助商家解决这一难题&#xff0c;我们推荐使用甜羊浏览器&#xff…

局域网一套键鼠控制两台电脑(台式机和笔记本)

服务端&#xff08;有键盘和鼠标的电脑作为服务端&#xff09; 下载软件 分享文件&#xff1a;BarrierSetup-2.3.3.exe 链接&#xff1a;https://pan.xunlei.com/s/VO66rAZkzxTxVm-0QRCJ33mMA1?pwd4jde# 配置服务端 一&#xff0c; 二&#xff0c; 客户端屏幕名称一定要和…

携手浙商证券、华锐技术,共话交易技术的创新与应用

秉承“虚已者进德之基&#xff0c;求同存异谓之共赢”的理念&#xff0c;浙商证券联合非凸科技、华锐技术于8月28日在深圳举办了“量化机遇汇浙&#xff0c;交易技术共商”鑫管家私募沙龙纷享会。此次活动汇聚了众多优秀管理人与资方代表&#xff0c;分享前沿观点&#xff0c;探…

机器学习-逻辑回归原理及其公式

逻辑回归&#xff08;Logistic Regression&#xff09;是一种广泛应用于分类任务的统计学方法&#xff0c;尤其是在二分类问题中表现尤为突出。尽管它的名字中包含“回归”&#xff0c;但实际上逻辑回归是一种分类算法。逻辑回归的目标是预测一个样本属于某一类别的概率&#x…

链表题目训练

https://leetcode.cn/problems/remove-linked-li​​​​​​st-elements/description/第一题&#xff1a;移除链表元素 https://leetcode.cn/problems/remove-linked-li​​​​​​st-elements/description/ 第二题&#xff1a;反转链表 https://leetcode.cn/problems/reve…

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络) 文章目录 Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)前言一、Ubuntu依赖安装二、创建操作目录, 下载build_chain.sh脚本2.1 先…

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait&#xff0c;能根据用户提供的文本描述&#xff0c;快速生成既忠实于原图又能灵活调整的个性化人像&#xff0c;用户甚至可以通过简单的句子来描述多个不同的人物&#xff0c;而不需要一一指定每个人的位置。这种设计大大简化了用户的操作&#xff0c;提升了…

我的可视化表达引擎真高可用了

原来有这么多时间 六月的那么一天&#xff0c;天气比以往时候都更凉爽&#xff0c;媳妇边收拾桌子&#xff0c;边漫不经心的对我说&#xff1a;你最近好像都没怎么阅读了。 正刷着新闻我&#xff0c;如同被一记响亮的晴空霹雳击中一般&#xff0c;不知所措。是了&#xff0c;最…