← 返回生产场景

📰 内容与社交

CMS / 评论 / 点赞 / Feed流 / 审核 / 敏感词

📜Feed流:推(写扩散)vs 拉(读扩散)高频

推(写扩散)

发布时推到每个粉丝的收件箱。读快写慢。大V发一条 → 推千万份。

拉(读扩散)

发布只存主页。读时拉关注人的最新。写快读慢。关注多人 → 拉很多源合并。

实际方案:推拉结合。普通人用推(粉丝少),大V用拉(粉丝多),按粉丝数阈值切换。
👍点赞系统
// 用 Redis Set 存点赞用户(去重 + 快速判断是否点过) // key = like:post:{postId}, value = userId 集合 public void like(Long postId, Long userId) { boolean isNew = redisTemplate.opsForSet() .add("like:post:" + postId, userId.toString()); if (isNew) { // 新点赞 → 更新计数 + 通知作者 postMapper.incrementLikeCount(postId); notifyService.notifyAuthor(postId, "有人点赞了你的文章"); } // 已点赞过 → 幂等,不重复计数 } public boolean hasLiked(Long postId, Long userId) { return redisTemplate.opsForSet() .isMember("like:post:" + postId, userId.toString()); }
🔍敏感词过滤
用户发评论/文章,不能出现违禁词。
// 方案1:DFA 算法(确定有穷自动机) // 把敏感词库构建成树,文本逐字符匹配 → O(n) 扫描一次 // 推荐:用 hutool 的 SensitiveUtil 或自己构建 DFA 树 public String filter(String text) { return SensitiveUtil.filter(text, '*'); // "这个商品真垃圾" → "这个商品真**" } // 方案2:AI审核(百度/阿里内容安全API) // 图片/视频审核更复杂,需要调第三方AI审核API
审核流程:机审(DFA/AI)→ 不确定的人工复审 → 通过/拒绝/标记可疑。
生产场景 · 内容与社交 · 全栈资料库