feed流操作,feed bored

  feed流操作,feed bored

  今天Redis教程栏目一起看看如何实现feed流

  

  前端(vue)入门到精通课程:进入学习

  1 简介

  朋友圈、微博都是Feed流产品,图片分享网站Petal.com Pinterest是Feed流产品的另一种形式。很多app还会有一个叫动态或者消息广场的模块。这些也是流媒体产品。

  核心概念

  饲料

  源流中的每个状态或消息。比如朋友圈里的一个状态就是一个Feed,微博里的一条微博就是一个Feed。原料流

  持续更新并呈现给用户的内容信息流。大家的朋友圈,微博的关注页面等等都是一个Feed流。时间表

  一种Feed,微博和朋友圈都是时间轴类型的Feed流。但是,因为Timeline是最早的,使用最广泛的,也是最广为人知的,所以有时候Timeline是用来表示提要流的。注意页面时间线

  显示其他人的订阅源消息的页面,如朋友圈和微博主页。个人页面时间线

  显示他们已发送的订阅源消息的页面,如微信中的相册和微博的个人页面。2 特点

  多账户内容流

  Feed系统肯定会有几千个账号,可以关注,可以关闭,可以加好友,可以拉黑。只要满足这一条,就可以设计成Feed streaming系统。账户关系不稳定

  因为关注、访问等操作,系统中用户之间的关系总会发生变化,这是一种不稳定的状态。读写比率100:1

  读写严重失衡,读的多,写的少。一般读写比例是10: 1甚至100: 1以上。对消息可访问性的要求很高。

  比如发了一条朋友圈,结果有的朋友看到了,有的朋友没看到。如果正巧女朋友没看到,可能会导致严重的感情冲突,后果很严重。3 分类

  时间表

  按照发布的时间顺序,第一个最先看到,最后一个排在最上面,类似微信朋友圈、微博等。这也是最常见的形式。如果产品选择的是时间轴类型,说明feed流中的Feed不多,但是每个Feed都很重要,需要用户看到。军阶

  按非时间因素排序,通常是根据用户的喜好,用户最喜欢的在前面,第二喜欢的在后面。这个一般的假设是,用户可能会看到很多Feed,在这里花费的时间有限,所以选择用户最想看到的前N个结果给用户。场景的应用场景包括图片分享、新闻推荐、商品推荐等。4 难点

  4.1 存储

  因为这个项目中的Feed比较简单,类比于space,所以可以使用MySQL进行存储。如果数据结构复杂的Feed流需要使用NoSQL数据库,那么对于存储来说更加方便高效,比如MongoDB或者HBase。

  4.2 推送

  在推送方案中,有三种方案,即:

  拉模式

  也称为阅读扩散,用户主动拉动关注者的Feed内容。

  即当一个用户(尤其是关注很多人的用户)触发一个行为时,它自己拉动态,检索用户的关注列表,然后根据关注列表检索新发布的feed。如果一个用户关注度过高,查询用户的关注度列表也有很大的数据成本。

  推模式

  也称为写扩散,当用户添加提要时,它会自动通知关注者(最好)。

  即当用户触发一个行为(比如发一条微博)时,他自己的行为被记录在行为表中,同时也对应了这个用户的粉丝表,为每个粉丝插入一个feed。但是,对于一个粉丝过万的大V来说,为每个粉丝插入一个feed,存储数据的成本很高。

  使用Redis排序集(时间轴)来维护fan的提要集合。博主在添加feed时,主动将内容推送到粉丝的feed集合中,让用户可以方便快捷地从集合中阅读。

  推拉结合

  比如微博,大部分用户都有几百个账号关系,但有的用户只有1000多万的账号在使用。

  在线推,离线拉

  大V发消息,只在同一时间同步发布消息给线上粉丝,线下粉丝上线后才能拉消息。来完成推拉。

定时推,离线拉

  ,大V上线后,以常驻进程的方式定时推送至粉丝动态表。

  5 表设计

  以上推荐(免费):redis教程是Redis如何实现feed流的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: