系统设计实战第 7 卷
系统设计实战

系统设计 - 热搜榜单

热搜榜
ZSetRedis有序集合

从一个热搜榜开始,构建覆盖榜单模型、Redis ZSet、热度计算、实时更新、防刷榜和 Feed 排序的热门排名系统

系统演进路线

从点击排序到可治理的热榜平台

第 1 版

按点击排序

内容社区上线热榜,先按浏览量和点赞数排序。

内容表计数字段定时查询

能形成榜单,但会被旧内容和刷量长期占据。

第 2 版

热度公式

新内容上不来、标题党霸榜,需要引入时间衰减和多维权重。

点击评论分享时间衰减权重配置

榜单开始可解释,但公式需要能快速调整。

第 3 版

实时计算

热点事件几分钟内爆发,小时级定时任务已经太慢。

Redis ZSet流式窗口增量更新分类榜

实时性提升后,窗口边界和重复事件处理成为重点。

生产版

可治理榜单平台

刷榜、水军和低质内容影响社区生态。

异常检测人工运营榜单降权Feed 融合效果看板

生产热榜要同时追求新鲜、可信、可解释和可干预。

架构演进
热榜系统四个阶段
按点击排序
内容社区上线热榜,先按浏览量和点赞数排序。
数据来源
内容表
信号
文章/视频/话题
计数字段
信号
浏览量、点赞数
榜单生成
定时查询
榜单
按计数排序取 Top N
验收标准:能形成榜单,但会被旧内容和刷量长期占据。

课程简介

系统总览
热门榜单系统总览
从事件采集到热度计算、实时榜单、防刷治理和展示排序。
采集
点击评论
点赞分享
内容事件
计算
热度公式
窗口聚合
实时更新
展示治理
Redis ZSet
多样性排序
防刷降权

热搜榜单看起来只是按热度排序,但真实系统要解决的问题很多:热度如何定义?新内容如何快速上榜又不过度刷屏?榜单如何实时更新?Redis ZSet 是否足够?刷榜和水军如何识别?榜单和个性化 Feed 如何结合?

这门课从一个全站热榜开始,逐步构建一套实时、可解释、可治理的热门排名系统。

课程会围绕一次社区热点事件展开:最初只是把浏览量最高的内容排在前面;很快旧内容霸榜、新内容没有机会;再后来热点爆发太快,离线任务跟不上;当刷榜和水军出现,榜单系统必须具备风控、运营干预和效果复盘能力。

学习路线

  1. 榜单系统概述:明确热榜、实时榜、分类榜、个性化榜的差异。
  2. 榜单基础:设计榜单数据结构、分页查询和排名算法。
  3. Redis ZSet:用有序集合承载实时排名,并处理批量更新。
  4. 热度计算:综合点击、评论、分享、时间衰减和多维权重。
  5. 实时计算:使用窗口聚合和流式计算降低榜单更新延迟。
  6. 防刷榜:识别异常行为、黑名单和权重调整。
  7. Feed 流排序:把全站热度和个性化信号结合到内容流。
  8. 完整系统:总结最终架构、关键决策和上线检查清单。

读完后,你应该能判断一个榜单系统是否只是“按计数排序”,还是具备热度公式、实时更新、防作弊和内容生态治理能力。

第一章 / CHAPTER 01

开始 - 榜单系统概述

开始阅读