巧用 Redis,实现微博 Feed 流功能!( 三 )

3.用户新增关注/取消关注这里比较简单,新增/取消关注,把新关注的 Feed 往自己的 Feed流中增加/删除 即可,但是同样需要异步处理 。
/** * 关注/取关 时,处理followerId的zSet * * @param followId被关注的人 * @param followerId 当前用户 * @param typefocus = 关注 unfocus = 取关 */public void handleFocus( Long followId, Long followerId, String type) {String focusFeedKey = "focusFeedKey" + userId;// 如果粉丝 zSet 不存在,退出if (!this.zSetRedisTemplate.exists(focusFeedKey)) {return;}List<FeedDto> FeedDtos = this.listFeedByFollowId(source, followId);for (FeedDto feedDto : FeedDtos) {// 关注if ("focus".equals(type)) {this.removeOldestZset(focusFeedKey);this.zSetRedisTemplate.zadd(focusFeedKey, feedDto.getCreateTime().getTime(), feedDto.getId());}// 取关else if ("unfocus".equals(type)) {this.zSetRedisTemplate.zrem(focusFeedKey, feedDto.getId());}}}上面展示的是核心代码,仅仅是为大家提供一个实现思路,并不是直接可运行的代码,毕竟真正实现还会涉及到很多其他的无关要紧的类 。

【巧用 Redis,实现微博 Feed 流功能!】


推荐阅读