这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
开始 - 榜单系统概述
一个热搜榜通常承担两个任务:让用户快速看到当前最热门的内容,也让平台把公共注意力组织起来。问题是,什么叫“热门”?是点击多、评论多、增长快,还是刚刚爆发?
如果只按点击数排序,老内容会长期霸榜;如果只按最新互动排序,榜单会剧烈抖动;如果完全实时,刷榜攻击会更容易影响结果。
榜单类型
常见榜单包括:
- 全站热榜:展示平台整体热点。
- 分类榜:按频道、城市、话题拆分。
- 实时榜:更关注短时间增速。
- 趋势榜:强调热度变化和上升速度。
- 个性化榜:结合用户兴趣和全局热度。
不同榜单的热度公式、刷新频率和防刷策略不同。
核心指标
榜单系统要关注:
- 更新延迟:事件发生后多久影响榜单。
- 排名稳定性:榜单是否频繁抖动。
- 新内容曝光:新热点是否能及时上榜。
- 防刷效果:异常互动是否被降权。
- 查询性能:TopN 和分页是否足够快。
这些指标天然冲突。越实时越容易抖动,越稳定越可能错过新热点。
课程主线
我们先建立榜单基础模型,再用 Redis ZSet 承载实时排名;随后设计热度公式和时间衰减;再引入流式计算降低延迟;最后补齐防刷榜、Feed 排序和完整架构。
榜单系统的核心不是一个排序函数,而是“数据采集、热度计算、实时更新、防作弊和展示策略”的组合。