news 2026/8/16 21:47:59

Redis线程模型完整演进历程(单线程 → 4.0惰性删除 → 6.0 IO多线程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis线程模型完整演进历程(单线程 → 4.0惰性删除 → 6.0 IO多线程)

一、Redis 1.0~3.0 纯单线程模型

早期版本全程单线程:网络IO、命令执行、持久化、定时任务全部主线程串行执行。优势:简单、无锁、无竞争;劣势:大Key、慢命令直接阻塞全局。


二、Redis 4.0 演进:后台多线程(惰性删除Lazy Free)

4.0 之前删除大Key、清空集合会阻塞主线程,导致服务卡顿。4.0 引入后台异步线程,专门处理大Key删除、内存回收,主线程只负责业务命令,彻底解决删除阻塞问题。

核心改进:命令执行依旧单线程,释放内存操作异步多线程


三、Redis 6.0 重大演进:IO多线程模型(核心面试点)

1. 优化背景

随着网卡带宽提升、单机QPS突破10W+,网络读写IO成为新瓶颈,CPU资源空闲但网络吞吐打满,单线程无法压榨多核性能。

2. 6.0多线程核心规则(重中之重)

多线程只负责网络IO,命令执行依旧单线程!

  • IO线程并行处理:Socket读取、协议解析、结果回写

  • 主线程串行执行:所有Redis读写命令逻辑

  • 完全规避线程安全问题,无需锁、不破坏原有架构

3. 6.0 IO多线程执行流程

  1. 主线程通过epoll监听所有连接,收集就绪Socket

  2. 将就绪连接分发至多个IO子线程并行读取请求、解析协议

  3. 所有请求汇总至主线程,串行执行命令逻辑

  4. 执行结果再次分发IO线程并行回写客户端

  5. 主线程等待IO线程完成,进入下一轮事件循环

4. 核心优势

充分利用多核CPU,网络吞吐性能提升一倍以上,彻底解决高并发网络IO瓶颈,同时保留单线程命令执行的简单、安全、无锁优势。


四、Redis 7.0 微调优化

优化IO线程调度策略、细化任务粒度、降低线程切换开销,进一步提升高并发稳定性。


五、线程模型总结(面试标准答案)

1. Redis 主线程命令执行始终单线程,保证线程安全、无锁、高稳定;

2. 4.0引入惰性删除后台线程,解决大Key删除阻塞;

3. 6.0引入IO多线程,仅并行处理网络读写,命令执行不变,大幅提升网络吞吐;

4. Redis不存在命令多线程并发执行,永远不存在线程安全问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 21:43:45

超声波与红外传感器——近距离避障的低成本方案

上篇讲了GPS/RTK定位原理,从距离交会到载波相位模糊度解算,再到NMEA协议解析和ROS2集成。今天讲两种最便宜的近距离传感器——超声波和红外,它们虽然精度不高,但在机器人避障、悬崖检测、液位测量等场景中不可替代。面试时候被问&…

作者头像 李华
网站建设 2026/8/16 21:38:50

屏幕接口技术全解析:从VGA到雷电,选型与避坑实战指南

1. 屏幕接口:连接视觉世界的桥梁每次我们点亮手机、打开电脑,或者连接一块外接显示器,一个看不见的“握手”过程就在屏幕与主机之间悄然完成。这个“握手”的物理与协议基础,就是我们今天要深入探讨的屏幕接口。你可能对HDMI、DP这…

作者头像 李华
网站建设 2026/8/16 21:34:25

警惕OpenClaw Skills:自动化工具背后的安全与合规陷阱

1. 项目概述:一个被低估的“效率工具”风险最近在和一些做自动化测试、数据采集的朋友交流时,发现一个挺有意思的现象:不少人在讨论一个叫“OpenClaw Skills”的东西。乍一听这个名字,感觉像是什么开源爬虫框架或者自动化脚本库&a…

作者头像 李华
网站建设 2026/8/16 21:34:21

WaterSearch: A Quality-Aware Search-based Watermarking Framework for Large Language Models

文章总结与翻译 一、主要内容 该研究针对大型语言模型(LLMs)文本水印技术中存在的可检测性与文本质量权衡问题,提出了一种基于搜索的水印框架WaterSearch。核心思路是通过种子池动态管理实现并行多样化生成,在句子层面联合优化文本分布保真度与水印信号特征,同时配套鲁棒…

作者头像 李华
网站建设 2026/8/16 21:28:45

GitHub PR提交优化:精准提交指定Commit的三种方案与实践

1. 项目概述:精准提交的艺术 在多人协作的Git项目中,我们经常会遇到一个非常具体的场景:你基于 main 分支开发了一个功能,这个功能可能由多个提交(commit)构成。在将工作合并回主分支前,你收到…

作者头像 李华
网站建设 2026/8/16 21:26:21

虚拟机与主机文件传输全攻略:共享文件夹、SSH、SMB与虚拟磁盘挂载详解

1. 从“隔阂”到“互通”:虚拟机文件传输的本质与价值如果你正在使用虚拟机进行开发、测试或者学习,那么“如何把主机上的文件传到虚拟机里”或者“怎么把虚拟机里的日志、代码拷出来”这个问题,几乎是你绕不开的第一道坎。虚拟机&#xff0c…

作者头像 李华