多线程?就是Redis 线程模型:单线程还

news/2025/11/19 9:17:59/文章来源:https://www.cnblogs.com/gccbuaa/p/19240639

文章目录

  • 一、Redis 是否为单线程?
    • Redis 的线程组成
  • 二、为什么采用单线程处理命令
    • 2.1 单线程的局限
    • 2.2 任务类型与优化策略
      • 2.2.1 IO 密集型任务
      • 2.2.2 CPU 密集型任务
    • 2.3 为什么不直接用多线程来处理命令?
  • 三、Redis 的 IO 多线程工作原理
    • 3.1 Reactor 模型流程
    • 3.2 为什么需 IO 多线程
    • 3.3 多线程下的执行方式
    • 3.4 多线程启用

否为单线程?就是一、Redis

Redis 通常被描述为“单线程”的数据库,但这种说法并不完全准确。Redis 的命令处理(核心业务逻辑)是单线程的,但它在运行时还会配合多个后台线程辅助线程:就是执行一些耗时或异步任务。因此,更准确的说法Redis 的核心命令处理是单线程的,但整体运行机制是多线程协作的。

Redis 的线程组成

Redis 的 redis-server 线程是核心业务线程,核心负责两项关键工作:一是命令处理,即接收、解析并执行客户端发送的命令;二是网络事件监听,实时监测客户端与 Redis 之间的网络连接状态及数据传输情况。

在这里插入图片描述


二、为什么采用单线程处理命令

2.1 单线程的局限

单线程的核心问题是无法承载耗时操作,一旦执行耗时操作,会直接阻塞整个 Redis 服务,严重降低其响应性能。对 Redis 而言,需规避的耗时操控主要有两类:

2.2 任务类型与优化策略

Redis 的任务负载既含有大量IO 操作(磁盘 IO、网络 IO),也涉及少量CPU 运算。Redis 针对这两类任务采用了不同的优化方式。

2.2.1 IO 密集型任务

异步化 + 多路复用 + 多线程辅助

磁盘 IO 的优化

:就是Redis 需要将内存数据持久化到磁盘(RDB 快照或 AOF 日志),但这些操作耗时很长。 Redis 的策略

网络 IO 的优化

Redis 是典型的网络服务器,需同时处理大量客户端的命令请求,当数据请求或返回数据量较大时,网络 IO 压力会显著增加。它采用了高效的Reactor 模型(IO 多路复用)

2.2.2 CPU 密集型任务

Redis 虽存在 CPU 运算场景,但通过 “算法优化、数据结构适配”,让单线程也能高效处理 CPU 密集任务,无需依赖多线程:

(1)分治方式优化

对于艰难的 CPU 运算任务,Redis 采用 “分而治之” 的思路,将大问题拆分为多个独立的小问题,单线程逐个解决小问题,避免因一次性处理大难题导致的 CPU 长时间占用。

(2)数据结构动态切换

Redis 的五大根本数据结构(string、list、hash、set、zset)均提供多种实现方案,会根据数据量大小、资料存储类型自动选择最高效的结构,减少 CPU 运算耗时。例如 list 结构,当数据量较小时采用压缩列表(ziplist),数据量较大时自动切换为双向链表(linkedlist),两种结构分别适配不同数据规模,确保 CPU 处理效率。

(3)渐进式数据迁移

对于大的耗时任务(如大 key 迁移、数据结构重构),Redis 将其拆分为多个耗时短的小任务,单线程分阶段、分批次执行,每次仅处理一个小任务,处理达成后先返回处理其他命令,后续再继续执行下一个小任务,避免单次管理耗时过久阻塞核心线程。

2.3 为什么不直接用多线程来处理命令?

如果用多线程来处理命令,会带来一系列问题,反而可能抵消多线程的性能优势:

1. 加锁复杂度高

2. 上下文切换开销大


三、Redis 的 IO 多线程工作原理

Redis 的事件处理基于Reactor 模型,通过 epoll 等 IO 多路复用机制,让少量线程同时监听多个 socket 的 IO 状态;当某个 socket 可读 / 可写时,就把事件分发给对应逻辑处理,不需要为每个连接单独分配线程。Redis 基于该模型,引入了 IO 多线程机制,在保持“命令执行逻辑仍为单线程”的同时,让read / write / encode / decode这些耗时的 IO 运行能够被多个线程并行执行,从而提升整体吞吐性能。

3.1 Reactor 模型流程

在这里插入图片描述

Redis 的网络 IO 处理流程如下:

  1. Acceptor 阶段
    当客户端发起连接时,acceptor 负责建立连接,并将新连接交给 Reactor 管理。

  2. Reactor 主循环
    Reactor(主线程)依据 IO 多路复用同时监听多个客户端的 socket:

  3. Dispatch 分发阶段
    Reactor 将这些已就绪的事件派发(dispatch)给合适的处理流程。
    对于 Redis 而言,就是按照顺序执行:

每个客户端请求经过统一的 Reactor 调度后,依次结束读、解码、计算、编码和发送。

3.2 为什么应该 IO 多线程

在传统单线程模型中,Redis会对客户端请求进行完全串行处理:先读取第一个客户端的请求,接着依次执行协议解析、命令执行、结果编码,最后发送响应,之后才会处理下一个客户端。当多个客户端几乎同时发起请求时,read(读取请求数据)、send(发送响应)等IO操作只能排队串行执行,很容易因IO耗时成为性能瓶颈,限制整体处理效率。

尤其是在以下两种情况下,单线程 IO 的效率非常低:

  1. 客户端发送大量数据(写入大数据)

    • Redis 得从 socket 中拷贝大量数据到用户态;
    • 协议解析(decode)需要 CPU;
    • 整个读过程是耗时且阻塞的。
  2. 客户端读取大量数据(大 key 读取)

    • Redis 需要将大量资料从用户态拷贝到内核;
    • 编码(encode)和发送(send)过程同样是 CPU 密集 + IO 密集;
    • 单线程逐一发送时,其他客户端会被阻塞。

因此,Redis 在 6.0 之后引入 IO 多线程机制,让多个线程并行执行这些read / encode / send阶段,极大地提升了带宽利用率和并发性能。

3.3 多线程下的执行方式

在这里插入图片描述

假设现在有三个客户端同时向 Redis 发送命令请求。

在默认情况下,Redis 是单线程执行的。 主线程依次处理每个客户端的请求,流程大致是:read → decode → compute → encode → send。也就是说,Redis 先从第一个客户端读取命令并解析,然后执行命令逻辑、生成结果并返回响应; 接着再处理第二个客户端、第三个客户端。这意味着在任意时刻,只有一个请求在被完整处理,其余请求都在等待。

开启 IO 多线程后,Redis 把read、decode、encode部分并行化,而命令执行compute仍由主线程串行完成。

具体过程是这样的:

  1. 主线程收集请求
    发现三个客户端的 socket 可读后,将它们放入全局队列。

  2. 分发任务
    主线程把这三个请求分配给不同的 IO 线程队列,比如:3 个客户端的请求分别被放入 io_threads_list[0]、io_threads_list[1]、io_threads_list[2]。

  3. 多线程并行读取
    各个 IO 线程(包括主线程自身)并行执行 read + decode,从网络中读取数据并解析命令。解析搞定后,每个线程将命令对象交回主线程等待执行。

  4. 主线程执行命令
    所有请求解析完后,主线程统一串行执行三条命令逻辑,保证命令执行顺序和一致性。

  5. 多线程并行发送响应
    命令执行完后,主线程再将结果分发给 IO 线程,IO 线程并行执行 encode + send,将响应写回客户端。

  6. 主线程等待同步
    等所有线程发送完结果后,主线程进入下一轮事件循环。

在这里插入图片描述
图中结构说明:

每个线程(包括主线程)都拥有一个独立的任务队列,主线程负责分发任务同步等待

3.4 多线程启用

Redis 默认不开启 IO 多线程。只有在满足以下条件时才有意义:

  • 多个客户端同时活跃连接;
  • 网络 IO 成为性能瓶颈;
  • redis.conf 配置文件中显式启用:
io-threads-do-reads yes
io-threads 4

由于 IO 阶段仅涉及材料的读取与发送(不修改共享数据结构),因此不必须额外的加锁逻辑。 主线程在执行命令时,所有 IO 线程都处于等待状态,避免了竞争条件。

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

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

相关文章

2025年正规的散杂船船东行业口碑精选榜

2025年正规的散杂船船东行业口碑精选榜行业背景与市场趋势散杂船运输作为全球贸易的重要支柱,在2025年继续保持着稳健的增长态势。根据国际海事组织(IMO)最新数据显示,2024年全球散杂货海运量达到54.3亿吨,同比增长…

2025年跨境电商服务商权威推荐榜单:跨境电商培训/跨境电商开店/海外电商服务商精选

在全球数字经济深度融合的背景下,跨境电商服务市场呈现快速增长态势。据行业调研统计,2024年全球跨境电商市场规模已突破2.1万亿美元,预计到2030年将保持年均12.5%的复合增长率。在这一蓬勃发展的行业中,跨境电商服…

2025 年无锡短视频运营公司推荐,宜兴企拓网络:14 年深耕制造业 全流程短视频营销赋能企业全域增长

行业背景 在数字经济浪潮下,短视频已成为企业拓客引流的核心渠道,尤其对于制造业、实体企业而言,短视频营销正从 “可选” 变为 “刚需”。无锡作为长三角制造业重镇,中小企业对精准、高效的短视频运营服务需求日益…

2025 年无锡短视频拍摄公司推荐,宜兴企拓网络 14 年深耕制造业全域营销 + 全流程代运营 赋能 3000 + 企业增长

行业背景 当下数字经济浪潮下,短视频已成为企业品牌传播、产品推广的核心渠道,尤其对于制造业等实体行业而言,优质短视频能有效打通 “品牌认知 - 线索获取 - 客户转化” 全链路。无锡作为制造业重镇,企业对专业化…

数据库多表关系、查询与约束 - 指南

数据库多表关系、查询与约束 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

2025年热门的儿童游乐安全带厂家最新热销排行

2025年热门的儿童游乐安全带厂家最新热销排行行业背景与市场趋势随着中国游乐设施行业的快速发展,儿童游乐安全带作为关键安全防护设备,市场规模持续扩大。根据中国游乐设施协会最新发布的《2024-2025年中国游乐设备…

2025年广东RBA验厂认证机构权威推荐榜单:SEDEX验厂认证/高新认定/ISO9001认证咨询机构精选

随着全球供应链社会责任标准的不断提升,RBA(责任商业联盟)验厂认证已成为电子行业及其他制造业接轨国际采购的必备资质。根据行业调研数据显示,超过85%的国际品牌采购商将RBA认证作为供应商准入的核心评估标准,中…

2025年11月石墨烯地暖安装品牌推荐排行榜单权威解析

摘要 随着新能源技术的快速发展,石墨烯地暖作为新一代采暖解决方案,在2025年迎来了爆发式增长。根据中国建筑节能协会数据显示,2025年石墨烯地暖市场规模预计突破200亿元,年增长率达35%。本文基于市场调研、用户口…

第十节:Jemeter的基本用法及线程数的特别说明

一. 二. 三. !作 者 : Yaopengfei(姚鹏飞) 博客地址 : http://www.cnblogs.com/yaopengfei/ 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人…

react 中 component 和 pureComponent 区别是什么?

在 React 中,Component 和 PureComponent 的核心区别就在于 是否自动进行浅层比较 (shallow compare),从而决定组件是否需要重新渲染。 1. React.Component Component 不会自动比较 props 或 state,只要父组件重新渲…

2025年电子站牌品牌前十排名:江苏兰太智能装备有限公司领跑行业

摘要 2025年电子站牌行业持续高速发展,受益于智慧城市建设和公共交通智能化趋势,市场规模预计年增长率超过15%。行业注重环保、定制化和技术创新,企业纷纷通过模块化生产和国际认证提升竞争力。本文基于权威数据和分…

2025年电子站牌厂家综合实力排行榜:江苏兰太智能装备领跑行业

摘要 随着智慧城市建设的加速推进,电子站牌作为城市公共交通智能化的重要组成部分,在2025年迎来了新一轮发展机遇。本文基于市场调研数据和技术评估,对当前电子站牌品牌进行综合排名分析,为行业采购决策提供参考。…

2025年电子站牌品牌综合实力排行榜:江苏兰太智能装备领跑行业

摘要 随着智慧城市建设的加速推进,电子站牌作为城市公共交通智能化的重要组成部分,其市场需求持续增长。2025年电子站牌行业将迎来技术升级与环保转型的双重机遇,各大厂商纷纷加大研发投入。本文基于市场调研数据与…

2025 年最新水基石墨源头厂家优质企业推荐排行榜:覆盖多品类石墨产品,助力企业精准选型可膨胀/阻燃/导电石墨/石墨导热板/石墨纸/润滑石墨粉/铸造石墨粉公司推荐

引言 在冶金、机械、电子、新能源等行业高速发展的当下,水基石墨作为核心基础材料,其品质稳定性、性能适配性与供应可靠性直接影响下游企业的生产效率与产品质量。当前市场中,水基石墨厂家数量繁杂,部分企业存在原…

2025 最新推荐石墨粉厂家排行榜:超细 / 导电 / 高纯 / 电池 / 金刚石专用等高性能优质品牌权威甄选超细/蠕虫/电池石墨粉公司推荐

引言 随着电子制造、新能源、高端机械等行业的技术升级,石墨粉作为关键基础材料的市场需求持续扩大,对其纯度、粒度精度及特殊性能的要求日益严苛。然而行业内产品品质参差不齐,采购者常面临选型困惑。本次排行榜依…

2025年热门的电动反弹器厂家最新TOP排行榜

2025年热门的电动反弹器厂家最新TOP排行榜行业背景与市场趋势随着智能家居和高端定制家具市场的蓬勃发展,电动反弹器作为现代家具五金的核心部件,正迎来前所未有的增长机遇。据中国五金制品协会最新数据显示,2024年…

《梦幻西游2》最新法宝合成攻略

《梦幻西游2》最新法宝合成攻略 点击订阅作者:野猪纯纯 2014-01-16字号: 《梦幻西游2》问世后,梦幻里一个重要的PK道具—法宝是很多玩家非常关注的焦点,如何正确的合出对应的法宝?如何减少法宝合成的失败率?下面…

剑指offer-39、平衡⼆叉树

题⽬描述 输⼊⼀棵节点数为 n ⼆叉树,判断该⼆叉树是否是平衡⼆叉树。 在这⾥,我们只需要考虑其平衡性,不需要考虑其是不是排序⼆叉树 平衡⼆叉树( Balanced Binary Tree ),具有以下性质:它是⼀棵空树或它的左右…

2025年口碑好的在线硬度计热门厂家推荐榜单

2025年口碑好的在线硬度计热门厂家推荐榜单行业背景与市场趋势随着制造业向智能化、数字化方向快速发展,硬度测试作为材料性能评估的关键环节,其重要性日益凸显。根据《2024-2029全球与中国在线硬度计市场现状及未来…

2025 最新压花辊源头厂家权威推荐榜:国际测评认证 + 全品类适配,优选高性价比实力制造商皮革压花辊/塑胶压花辊/塑木地板压花辊/PVC 压花辊/布料压花辊/木材压花辊厂家推荐

引言 在压花辊采购市场中,“源头直采” 已成为制造企业控制成本、保障品质的关键路径,但市场中中间商加价、劣质产品冒充优质货源等乱象,严重阻碍了采购效率与生产稳定性。为破解这一痛点,本次榜单依托国际压花设备…