这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
点赞 Feed 流
点赞不仅影响一个数字,还会进入 Feed 场景:用户想看到“谁点赞了这篇文章”,内容流需要展示“朋友点赞”,作者需要看到点赞通知。这时系统不能只保存计数,还要保存行为关系。
本章主线
本章围绕点赞行为如何进入 Feed 展开:
- Feed 模型:点赞事件如何进入用户动态或内容流。
- 点赞记录:记录用户、内容、时间和状态,支持查询和撤销。
- 去重展示:同一内容多次互动、多人点赞时如何避免刷屏。
点赞记录模型
一条点赞记录可以包含:
| 字段 | 含义 |
|---|---|
| user_id | 点赞用户 |
| target_type | 文章、视频、评论 |
| target_id | 被点赞对象 |
| status | liked、cancelled |
| created_at | 首次点赞时间 |
| updated_at | 最近更新时间 |
这张表是用户态的事实来源。计数可以最终一致,但点赞记录要能支撑幂等、取消和展示。
Feed 展示策略
Feed 中的点赞展示要控制噪音:
- 多个好友点赞同一内容时合并展示。
- 用户取消点赞后要更新展示状态。
- 高频点赞用户不能刷屏。
- 旧点赞事件可以降权或过期。
这里的目标不是把每一次点赞都展示出去,而是把点赞作为内容推荐和社交证明的一种信号。
与计数的关系
点赞记录和点赞数可能短暂不一致。例如记录已经写入,Redis 计数还未回写数据库。系统需要定义查询优先级:
- 用户是否点赞:查点赞记录或状态缓存。
- 点赞数展示:查 Redis 计数或汇总缓存。
- 离线分析:查行为日志和数据库。
本章把“计数系统”扩展为“互动行为系统”,为排行榜和推荐打基础。
