第二周作业





发朋友圈比较简单,记录到数据库就行了。
浏览朋友圈需要先获得好友关系,读取最近若干条,按照时间排序。
评论和转发略复杂一些,需要读取然后保留当前用户的好友发布的内容。
如果一个人有巨量的好友,且都在发朋友圈。每个人都保存最近发的若干条内容,那么得从巨量的数据按时间取最近的几条。可以用 redis zset 实现,id 当 value,使用发布时间作为 score。每次刷心都是用上次最后一个时间戳从所有朋友的列表中读取前面的条目,再 merge 成一个信息流。
评论需要读一批,然后过滤,保留有朋友关系的评论。
转发跟发朋友圈类似,需要再带上被转发信息的作者。
评论