数据库——Redis 没有使用多线程?为什么不使用多线程?

news2024/12/25 0:48:01

文章目录

  • Redis6.0 之后为何引入了多线程?

虽然说 Redis 是单线程模型,但是, 实际上,Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。
在这里插入图片描述
不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令,使用这些命令就会使用主处理之外的其他线程来“异步处理”。

大体上来说,Redis 6.0 之前主要还是单线程处理。

那,Redis6.0 之前 为什么不使用多线程?

我觉得主要原因有下面 3 个:

  1. 单线程编程容易并且更容易维护;
  2. Redis 的性能瓶颈不再 CPU ,主要在内存和网络;
  3. 多线程就会存在死锁、线程上下文切换等问题,甚至会影响性能。

Redis6.0 之后为何引入了多线程?

Redis6.0 引入多线程主要是为了提高网络 IO 读写性能,因为这个算是 Redis 中的一个性能瓶颈(Redis 的瓶颈主要受限于内存和网络)。

虽然,Redis6.0 引入了多线程,但是 Redis 的多线程只是在网络数据的读写这类耗时操作上使用了, 执行命令仍然是单线程顺序执行。因此,你也不需要担心线程安全问题。

Redis6.0 的多线程默认是禁用的,只使用主线程。如需开启需要修改 redis 配置文件 redis.conf

io-threads-do-reads yes

开启多线程后,还需要设置线程数,否则是不生效的。同样需要修改 redis 配置文件 redis.conf :

io-threads 4 #官网建议4核的机器建议设置为2或3个线程,8核的建议设置为6个线程

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

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

相关文章

Vue 中hash 模式与 history 模式的区别

hash 模式: - 地址中永远带着 # 号,不美观。 - 兼容性比较好。 - 通过手机 app 分享地址时,如果 app 效验严格,该地址会被标记为不合法。 history 模式: - 地址干净,美观。 - 兼容性和 hash 模式相比…

媒体梦工厂软件教程:轻松合并视频,打造完美影片

在如今数字化时代,视频编辑已经成为人们日常生活和工作中不可或缺的部分。无论是在社交媒体上与朋友分享精彩时刻,还是在业务领域展示专业技能,人们对于视频的需求愈发增长。而对于那些想要将多个视频片段合并成一个完美影片的人来说&#xf…

常见前端面试之VUE面试题汇总五

13. assets 和 static 的区别 相同点: assets 和 static 两个都是存放静态资源文件。项目中所 需要的资源文件图片,字体图标,样式文件等都可以放在这两个文件 下,这是相同点 不相同点:assets 中存放的静态资源文件在…

【3维视觉】网格的谱分解和应用(GFT图傅里叶变换)

网格的谱分解即网格的频率分解,我们学过信号的傅里叶变换,将信号从空域变换到频域。二维图像由离散傅里叶变换DFT(Discrete Fourier Transform)。在图信号领域,也有图的傅里叶变换GFT(Graph Fourier Transform),网格可以看作是图&…

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成; 2.马尔科夫链蒙特卡洛方…

深入探索快速排序:高效分而治之的算法

1. 引言:快速排序的背景与重要性 快速排序(Quick Sort)是一种高效的排序算法,以其出色的性能和普适性而受到广泛关注。它利用了分而治之的思想,通过将数组分割成较小的子数组,并将这些子数组分别排序来实现…

苹果手机怎么删除软件?教你1分钟搞定!

手机内存快不够用了,实在是不想删除手机里的重要数据,所以想卸载一些长时间不用的软件,有什么快速好用的方法能够安利一下吗? 买了新手机,第一件事当然是在手机上下载各种各样的软件供自己使用和娱乐。但当过了一段时间…

Clock Domain Crossing(CDC)跨时钟域

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ​跨时钟域(CDC)指的是信号由一个时钟域进入另一个时钟域,以下图为例。 ● F1属于clk1时钟域 ● Q1属于clk1时钟域的信号 ● F2属于clk2时钟域 ● Q2属于clk2时钟域的信号 ● Q1对于F2来说是…

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

排除代码和Resolution and Presentation面板设置问题 如果程序还是不能按照预期的分辨率运行,应该是系统注册表记录了对应的设置。 解决方案: 打开注册表,使用快捷键“Win” "R"组合快捷键。在打开后面键入命令:Rege…

6G太赫兹波频段

6G目前处于非常早期的研究阶段。国际电信联盟所期待的“网络2030”愿景正在逐步实现。虽然该行业距离进入6G标准开发进程还有几年的时间,但亚太赫兹(sub-THz)技术已经成为研究的重点。 6G一个关键目标和积极研究领域是实现 100 Gbps 至 1 Tb…

枚举的使用优化if-else

文章目录 目录 文章目录 前言 一、用来替代大量请求路径的判断 二、使用枚举来优化if-else结构 总结 前言 枚举是一种常用于替代复杂的if-else结构的优化工具。通过使用枚举,可以将多个条件判断语句转化为简单的case语句,提高代码的可读性和可维护性 一…

问道管理股票分析:股票开户后不交易会扣费吗?怎么注销?

相信日子中有许多人在办理一些如银行账户开户以及其他买卖业务时,会被建议注册一个证券账户,而相当多的人在注册完后就没有再搭理过这个账户了。那么,开户后不买卖会被扣费吗?觉得藏着没用的,该怎样去刊出?…

Linux下的系统编程——vim/gcc(二)

前言: 在Linux操作系统之中有很多使用的工具,我们可以用vim来进行程序的编写,然后用gcc来生成可执行文件,最终运行程序。下面就让我们一起了解一下vim和gcc吧 目录 一、vim编辑 1.vim的三种工作模式 2.基本操作之跳转字符 &a…

每日两题 111二叉树的最小深度 112路径总和(递归)

111 题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:2示例 2&#x…

创造势能,把握节奏

善于打仗的人,创造高势能,行动节奏恰当 【安志强趣讲《孙子兵法》第18讲】 【原文】 激水之疾,至于漂石者,势也;鸷鸟之疾,至于毁折者,节也。 【注释】 激,阻截水流 节,时…

ITIL4—战略与指导

战略与指导 成功的服务提供,需要朝着商定的目标采取协调一致的行动。本节将探讨服务供应商战略的创建和管理,其目的是首先对战略的本质、范围,以及战略与指导的关系建立基本的理解,然后为与该战略一致的指导活动提供指导。 本节…

最新APP下载官网源码带app预览,

适合做软件,游戏,产品,企业工作室官网,有能力的可自行二开。 源码:星域社区官网源码.zip - 蓝奏云

Delphi 开发手持机(android)打印机通用开发流程(举一反三)

目录 一、场景说明 二、厂家应提供的SDK文件 三、操作步骤: 1. 导出Delphi需要且能使用的接口文件: 2. 创建FMX Delphi项目,将上一步生成的接口文件(V510.Interfaces.pas)引入: 3. 将jarsdk.jar 包加入到 libs中…

Nuxt3环境变量配置

Nuxt3 正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以…

Connect-The-Dots靶场

靶场下载 https://www.vulnhub.com/entry/connect-the-dots-1,384/ 一、信息收集 探测存活主机 netdiscover -r 192.168.16.161/24nmap -sP 192.168.16.161/24端口操作系统扫描 nmap -sV -sC -A -p 1-65535 192.168.16.159扫描发现开放端口有 21 ftp 80 http 20…