首页 新闻 会员 周边

热点数据为什么叫热key,叫key这不是钥匙意思吗,第二个问题,热点数据大为什么会阻塞redis主线程

0
[已关闭问题] 关闭于 2026-05-27 09:55

热点数据为什么叫热key,叫key这不是钥匙意思吗,第二个问题,热点数据大为什么会阻塞redis主线程

 

二、为什么 大Key 会阻塞 Redis 主线程?

先讲 Redis 核心特性,再讲阻塞原因,通俗易懂:

1. Redis 最关键前提:单线程模型(主线程串行执行命令)

Redis 处理读写、删除、过期等所有命令,主要靠一个主线程串行跑:
同一时间,主线程只能处理一条命令,干完一条才换下一条。

 

2. 大Key 是什么?

两种典型大Key:

1. String 类型:单个 Value 几 MB ~ 几十 MB

2. 容器类型:List / Hash / Set / ZSet 里面元素成千上万

3. 大Key 如何阻塞主线程?

(1)读取大Key

客户端执行 GET / HGETALL / LRANGE 等命令:

• 主线程需要完整遍历、拷贝整个超大数据

• 数据越大,CPU 耗时、内存拷贝耗时越长

• 主线程被“占住”,后面所有请求排队等待 → 整体响应变慢、超时、阻塞

(2)删除 / 过期大Key(危害更大)

Redis 删除、自动过期大Key 时:

• 如果是上万元素的 Hash/List,逐元素删除非常耗时

• 主线程长时间卡在删除逻辑里

• 期间所有正常业务请求全部卡住,直接造成服务抖动、雪崩

(3)网络传输放大影响

大Key 数据包很大:

• 网卡传输耗时增加

• 主线程要等待网络写完数据,进一步拉长阻塞时间

*Tesla*的主页 *Tesla* | 老鸟四级 | 园豆:2250
提问于:2026-05-27 09:55
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册