1
EminemW 2020-03-15 01:28:48 +08:00 via iPhone
点赞数排序用 sort set 存 评论 id 就可以了 点赞数作为每个评论 id 的分数
|
2
EminemW 2020-03-15 02:16:44 +08:00 via iPhone 1
我思考后发现,这个点赞问题在用户量足够大的情况下,会变得很复杂
这是链接里有微博的设计 https://blog.cydu.net/weidesign/2012/09/09/weibo-counter-service-design-2/ 对于你这个,我觉得需要存几个 key 1.点赞评论的用户 2.用户点赞的评论 3.评论点赞数 查的时候去判断[用户点赞的评论集合]里有没有该评论。另外考虑到用户可能点赞很多评论,你可以将评论产生的时间做 key 的一部分,查的时候到对应的 key 查用户有没有点赞过该评论。 重复点赞问题: 1.从前端限制点赞次数,比如几秒以后才能点 2.做异步处理,上消息队列 |
3
lxml 2020-03-15 02:20:51 +08:00 1
最佳办法是两个 key
key1 存 userId-tieId 记录用户对某个帖子的状态 |
4
lxml 2020-03-15 02:22:48 +08:00
key2 以 tieId 即可,记录帖子的点赞数
两个 key 之间如果需要维护最终一致,或者 分片打到一起的需求,就调换顺序,把 tieId-userId 这样某个用户查看某一堆贴 ID 都打到一个集群上,加快速度,以及可以扫 tieId* 来定时修复 tieid 的计数器 |