如果由你来设计,你会如何实现朋友圈的功能?朋友圈的分页功能是如何实现的?

面试题分类: Architecture如果由你来设计,你会如何实现朋友圈的功能?朋友圈的分页功能是如何实现的?
1 Answers
Iron 管理员 answered 6月 ago
public interface FreshNewsService {
/*
* 获取用户好友列表
* (1)将每个用户的好友列表存储在set结构中
* */
public Set<String> getUserFriendList(int userId);

/*
* 发布新鲜事
* (1)新鲜事存储到key-val结构中即可,key为新鲜事唯一ID(为了能看到自己发布的新鲜事,同时调用shareFreshNews)
* (2)调用getUserFriendList获取好友列表
* (3)遍历好友列表将新鲜事ID等信息插入到好友的新鲜事列表中,好友新鲜事列表使用zset结构val为新鲜事ID,score为时间戳(按时间倒序)
* */
public boolean shareFreshNews(User user, FreshNews freshNews);

/*
* 获取用户好友发布的新鲜事
* (1)从好友新鲜事列表zset结构数据结构中获取数据,使用zrevrange(myUID,start,end)获取分页新鲜事ID
* (2)根据新鲜事ID再获取新鲜事详细信息
* */
public List<FreshNews> getFreshNews(int userId, long start, long end);

/*
* 添加好友
* (1)添加好友UID到好友列表set数据结构中(注意双向添加)
* */
public boolean addFriend(int fromUserId, int toUserId);
}
Start your code here

 

FavoriteLoading添加本文到我的收藏

return top