RT,最近为实习远程面试,自己没有其它可以拿出来,只有一个小项目可说,其中提了实现了点赞功能,面试官就问了我实现方式。
我的实现方式用 redis 为每个回复存一个 likeit:reply:${reply_id} 的 set,这个 set 中保存点赞了这个回复的账户的 id,所以已经登录的用户在从后台拉取回复的列表的过程中,服务层会在这个过程中对列表中的每个 reply 获取 reply_id,然后向 redis 查询当前用户的 id 是否在集中以及这个回复被赞的数量,保存到这个 reply 实例的一个 @transient 成员 LikeIt 类的 likeit 里。。
最后前端(前端拿到的当然是 json )就根据这个确定用户有没有点赞过和当前回帖的点赞数。。
然后面试官就问了下有没有学习过当点赞数可能破万的情况下,有没有更好的方案。如果要提供根据点赞数从高到低展示回复要怎么做。然而我压根没想过(所以说没有深入思考的东西最好还是不要放上去。但真的没东西可放了),就很尴尬。
所以来 V 站 请教一下,点赞功能主流的实现思路是什么样的?在点赞数可能破万,需要按点赞数进行排序这两种情况下呢?
谢谢
我的实现方式用 redis 为每个回复存一个 likeit:reply:${reply_id} 的 set,这个 set 中保存点赞了这个回复的账户的 id,所以已经登录的用户在从后台拉取回复的列表的过程中,服务层会在这个过程中对列表中的每个 reply 获取 reply_id,然后向 redis 查询当前用户的 id 是否在集中以及这个回复被赞的数量,保存到这个 reply 实例的一个 @transient 成员 LikeIt 类的 likeit 里。。
最后前端(前端拿到的当然是 json )就根据这个确定用户有没有点赞过和当前回帖的点赞数。。
然后面试官就问了下有没有学习过当点赞数可能破万的情况下,有没有更好的方案。如果要提供根据点赞数从高到低展示回复要怎么做。然而我压根没想过(所以说没有深入思考的东西最好还是不要放上去。但真的没东西可放了),就很尴尬。
所以来 V 站 请教一下,点赞功能主流的实现思路是什么样的?在点赞数可能破万,需要按点赞数进行排序这两种情况下呢?
谢谢