当前位置: 首页 > wzjs >正文

做家纺的主要国际网站做网站编辑累吗

做家纺的主要国际网站,做网站编辑累吗,中国人做的比较好的shopify网站,wordpress太难用分类 feed流分为TimeLine和智能排序,前者不对内容进行过滤,一般根据发布的时间来进行排序,一般用于好友动态或者推送关注的人的消息,而后者一般有着复杂的算法,可以根据算法智能地向目标用户推送内容,例如…

分类

feed流分为TimeLine和智能排序,前者不对内容进行过滤,一般根据发布的时间来进行排序,一般用于好友动态或者推送关注的人的消息,而后者一般有着复杂的算法,可以根据算法智能地向目标用户推送内容,例如抖音的推送算法。

方案

Feed流推送一般有着三种方案

  1. 推模式,即发布者一有新消息,则将消息全部发送到粉丝的收件箱中,优点延迟小,缺点内存占用高
  2. 拉模式,即发布者将新消息发送到自己的发件箱,用户上线后从所有关注的人的列表中拉取新消息,优点占用内存小,缺点是读延迟高。
  3. 推拉结合的混合模式,通过推拉结合,根据发布者或者粉丝的分类进行合适的推拉模式选择,例如大V的粉丝数量庞大,对于他的活跃粉丝,采用推模式,对于普通粉丝,采用拉模式

在黑马点评的feed推送关注的博主的新发布博客中,一般用户的粉丝数不会特别大,采用推模式来实现,基于redis来实现推模式。

方案的实现

数据结构的选择:用户的收件箱应该根据用户关注的博主发布的博客的时间戳来进行排序,而redis中能够进行排序的有两种数据结构,分别为list和SortedSet, list为传统角标排序,而sortedSet能够根据给定的值来排序,这里用sortedset数据结构,根据关注的博主发布的博客的时间戳来实现

思路:

1.获取当前用户

  1. 获取redis中的收件箱,并判空
  2. 解析收件箱中的博客,解析出博客的id和时间戳
  3. 根据id查找博客
  4. 封装返回

粉丝查询代码:

/*** 滚动分页查询关注的人的博客,从时间为max前的第offset条开始查询* @param max * @param offset * @return*/
@Override
public Result queryBlogOfFollow(Long max, Integer offset) {//获取当前用户Long userId = UserHolder.getUser().getId();//获取redis中的收件箱String key = RedisConstants.FEED_KEY+userId;Set<ZSetOperations.TypedTuple<String>> typedTuples = stringRedisTemplate.opsForZSet().reverseRangeByScoreWithScores(key, 0, max, offset, 3);if(typedTuples == null || typedTuples.isEmpty()){return Result.ok();}//解析博客List<Long> Ids = new ArrayList<>(typedTuples.size());long timeMin =  0;int count = 1;for (ZSetOperations.TypedTuple<String> typedTuple : typedTuples) {//获取idString str = typedTuple.getValue();if(str!=null) Ids.add(Long.valueOf(str));//获取时间戳Long time = typedTuple.getScore().longValue();if(Objects.equals(time, timeMin)){count++;}else{count = 1;}timeMin = time;}//解析id,根据id查找博客String idsStr = StrUtil.join(",",Ids);List<Blog> blog = blogService.query().in("id", Ids).last("ORDER BY FIELD(id," + idsStr + ")").list();for (Blog blog1 : blog) {queryBlogUser(blog1);isBlogLiked(blog1);}//封装返回ScrollResult scrollResult = new ScrollResult();scrollResult.setList(blog);scrollResult.setMinTime(timeMin);scrollResult.setOffset(count);return Result.ok(scrollResult);
}

发布者代码:

/*** 保存博客* @param blog* @return*/
@Override
public Result saveBlog(Blog blog) {
// 获取登录用户
UserDTO user = UserHolder.getUser();
blog.setUserId(user.getId());
// 保存探店博文
boolean success = blogService.save(blog);
if(!success){return Result.fail("发布失败");
}
/*
将消息推送到所有粉丝
*/
//获取粉丝
List<Follow> followUser = followService.query().eq("follow_user_id", user.getId()).list();
//推送消息
for(Follow follow:followUser){Long blogId = blog.getId();stringRedisTemplate.opsForZSet().add(RedisConstants.FEED_KEY+follow.getUserId() ,blogId.toString() ,System.currentTimeMillis());
}
// 返回id
return Result.ok(blog.getId());
}
http://www.dtcms.com/wzjs/614804.html

相关文章:

  • 网站飘动python网站搭建
  • word做招聘网站网站建设标准
  • 在哪里找手机网站建设公司统一企业执照信息管理系统
  • 郑州百度推广托管怎么做公司网站优化
  • 株洲网站建设服务百度网盘电话人工服务
  • 网站做优化每天一定要更新关于文化馆网站建设的材料
  • 企业官方网站开发如何入账制作一个网站的费用是多少
  • 做一下网站收购废钢html网页制作模板图片
  • 衣服网站建设规划书网站设计做啥好
  • 南网站建设 首选搜点网络企业网站内使用了哪些网络营销方式
  • 定制网站建设官网怎么搜索到自己网站
  • 创意网站布局信息化建设办公室网站
  • 泉州哪里做网站北京搜索优化推广公司
  • 官方网站下载钉钉wordpress 模版制作
  • o2o网站线上大连建设网官网首页
  • 常见的静态网站开发技术那些开店的网站是自己做的吗
  • 网站ui设计是什么wordpress早期版本
  • 网站后台是怎么做的wordpress完美主题
  • 优质的天津网站建设深圳有什么网站
  • 建一个网站要...wordpress内网oss
  • 微软网站制作软件全球十大搜索引擎排名及网址
  • 兼职做网站在那里接任务广州网站建设 美词
  • 滨海专业做网站的公司电视剧下载网站免费糖醋蒜怎样做
  • 金华市网站建设广州招聘网网站开发
  • 网络营销导向型企业网站建设特征局域网网站建设教程
  • 北京网站设计公司哪家公司好网站怎么记录搜索引擎的关键词
  • 怎么评价网站的好坏免费软件怎么盈利
  • 湖北省建设厅网站查询代做网站转账截图
  • 网站的搜索功能怎么做wordpress安装数据库出错
  • 邢台网站建设电话百度网站优化工具