【Go语言实战】(20) B站点赞功能的思考与简单实现

写在前面

本着学习的目的,我们来了解一下B站的点赞功能纠结是怎么做的?或者说我们应该如果实现一个点赞功能?
当然本人不是b站员工,也没有参与过b站的任何活动,所以我们就用自己的想法,如果是我们,怎么去实现日活过亿的app的点赞功能。

1. 需求分析

我们先明确一下需求,这个点赞功能最主要影响两点:

  • 观众与点赞的关系,也就是观众有没有对这个视频点过赞。直观影响是点赞按钮的样式。
  • 视频与点赞的关系,也就是这个视频有多少点赞。影响了这个视频的推荐程度。

明确了我们的需求之后,我们再来思考。如何从上亿用户中找到这个人是否看过这个视频?难道进行 io 吗?这显然是不行的!

在这里插入图片描述

2. 技术方案研究

2.1 观众与点赞的关系的实现

2.1.1 思路

既然直接io不行,那当然是上缓存啦!那么我们如何设置这个缓存的key呢?

我的想法是:维护一个用户的一个视频的点赞队列,其实对于b站来说,一个视频封顶就200w的点赞数,而b站的用户大多喜欢白嫖。

所以 这个 key可以这样设计

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生凡一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值