使用Redis实现用户关注博客的推模式
目录
一、思路
二、实现代码:
一、思路
发布者:
这里采用redis的zset结构,将键设置为被推送用户id,值设置为博客id,score设置为时间戳
推送之前先查到当前发布博客用户的粉丝有哪些,然后去循环挨个推送
接受者:
直接诶是从订阅的zset中获取
二、实现代码:
伪代码(不完整)
发布者:
public R saveBlog(Blog blog){
//1.获取登录用户
.....
//2.保存博客
boolean isSuccess = save(blog);
//3.查询笔记作者所有的粉丝
List<Follow> follows = followService.query().eq("follow_user_id",user.getId()).list();
//4.推送笔记到所有粉丝
for(Follow follow : follows){
//4.1获取粉丝id
Long userId = follow.getUserId();
//4.2推送
String key = "feed:" + userId;
stringRedisTemplate.opsForZSet().add(ket,blog.getId()
.toString,System.currentTimeMillis());
}
//返回
return R.ok();
}