一、哪些算「热点数据(热数据)」
一句话:访问频率高、QPS高、要快、业务核心。
常见例子:
• 电商:当前秒杀商品库存、价格、购物车、用户会话
• 社交:热搜、新发微博/短视频、在线用户资料
• 支付/金融:今日订单、账户余额、交易流水、风控规则
• 出行:实时位置、正在进行的订单、热门路线
• App:首页内容、配置开关、今日活动
特点:
• 访问频率:高(每秒几十~几万次)
• 响应要求:毫秒级
• 存储:内存、Redis、SSD、高性能数据库
二、相对的:冷数据(冷点数据)
一句话:很久才访问一次、慢点没关系、主要为了归档/合规。
常见例子:
• 电商:3年前的历史订单、已下架商品详情、旧日志
• 社交:几年前的动态、已注销用户数据
• 金融:多年前的交易记录、审计日志、备份数据
• 监控:过期的监控录像、历史告警
特点:
• 访问频率:极低(月/年级别)
• 响应要求:秒/分钟级都可以
• 存储:HDD、对象存储、归档存储、磁带
三、中间层:温数据(Warm)
热和冷中间,还有一层温数据,正式分层是:热 → 温 → 冷。
• 热(Hot):最近30天高频用,放内存/SSD
• 温(Warm):30天~1年,偶尔用,放普通SSD/HDD
• 冷(Cold):1年以上,极少用,放归档/低成本存储
四、举个完整例子(订单数据)
• 热:今天/本周订单(查物流、退款、售后,访问多)
• 温:近3个月订单(对账、客服偶尔查)
• 冷:3个月~3年订单(很少查,只做归档)
• 冰(口语):3年前订单(几乎不碰,仅合规留存)
热点数据多和热点数据大啥区别?
先把两个概念换成通俗说法:
• 热点数据多(热 Key / Hot Key):
数据本身不大,但被访问得特别频繁。
关键词:访问频率高、QPS高。
• 热点数据大(大 Key / Big Key):
访问频率不一定高,但单条数据体积很大。
关键词:单条数据 size 大、结构大。
一、定义不同
• 热 Key(热点数据多)
◦ 本质:访问压力集中
◦ 例子:秒杀商品库存 Key,一秒被查 5000 次
◦ 关注点:QPS、并发数
• 大 Key(热点数据大)
◦ 本质:数据体积大
◦ 例子:一个 String 存了 10MB,或一个 Hash 有上万个 field
◦ 关注点:内存占用、网络包大小、操作耗时
二、问题和危害不同
• 热 Key 的问题
◦ 某一台实例/分片被打满,CPU、网卡跑满
◦ 容易缓存击穿、雪崩,压垮后端 DB
◦ 一句话:请求太多,扛不住
• 大 Key 的问题
◦ 读写耗时久,容易阻塞 Redis 主线程
◦ 网络传输大包,带宽被占满
◦ 删除/过期成本高,易造成卡顿
◦ 一句话:数据太重,搬不动
三、典型例子
1. 热 Key(多)
◦ 微博热搜、抖音爆款视频
◦ 电商首页、秒杀商品
◦ 特点:小数据、高并发
2. 大 Key(大)
◦ 一个 Key 存了整份大报表、大文本
◦ 一个 List/Hash 存了几万个用户信息
◦ 特点:大数据、访问不一定多
四、最简单一句话区分
• 热点数据多(热 Key):人多(访问多)
• 热点数据大(大 Key):东西大(体积大)
一个 Key 可以又大又热——既很大,又被疯狂访问,这种最危险。
redis 本质是 Key-Value 数据库:
◦ Key:数据的名字/唯一标识(不是“钥匙”)
◦ Value:真正存的“Key” = Redis(键值模型)带来的叫法;换成 MySQL 就叫“主键/字段”,不叫 Key。
所以在 Redis 领域,大家直接把“数据的名字”叫 Key,成了标准术语。