像抖音那种每次看完一个视频之后,这个视频都不会再出现,是标记为已读吗?
我想的就是单独建一张表,用来维护用户和已读视频。
查询的时候需要查询视频且不在自己已读列表里。
但是每看一个就要改一个状态吧。
那像快手这种该如何实现这个功能呢?每次查询出来的数据都改为已读?查询多少个视频,就将多少个视频置为已读插入到表?
抖音是如何实现的呢?这么实现好吗,还有其他实现方式吗?
非常感谢各位不吝赐教,谢谢。
像抖音那种每次看完一个视频之后,这个视频都不会再出现,是标记为已读吗?
我想的就是单独建一张表,用来维护用户和已读视频。
查询的时候需要查询视频且不在自己已读列表里。
但是每看一个就要改一个状态吧。
那像快手这种该如何实现这个功能呢?每次查询出来的数据都改为已读?查询多少个视频,就将多少个视频置为已读插入到表?
抖音是如何实现的呢?这么实现好吗,还有其他实现方式吗?
非常感谢各位不吝赐教,谢谢。
用redis是比较好的解决方案.
至于修改状态,可以是客户端在曝光之后上报,也可以是批量上报.
如果页面的size比较小,也可以是在服务端返回前就全部置为该用户已读.(这种对文章还可以,一页10篇曝光很快,但是对视频不合适).
另外,推荐服务进行过滤返回的时候可以使用布隆过滤器算法,有很多开源的实现,redis也支持,可以在很好的时间和空间复杂度下完成过滤操作.
希望帮到你.
10 回答11.1k 阅读
15 回答8.4k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
每个用户在redis记录一个播放历史
用户曝光之后, 客户端将曝光行为上报到上报服务, 写入redis, 推荐服务在下发物品的时候走过滤逻辑, 将物品过滤掉
一般来说这个播放历史是有长度限制的, 不是无限的