Feed流实现

关注推送

关注推送也称为Feed流(直译为投喂),为用户持续的提供“沉浸式”的体验,通过无限下拉刷新获取新的信息(如,短视频、博客等)。

获取信息的两种模式

  1. 传统模式:需要用户自己去根据所需去查询内容。

    image-20230526205552692

  2. Feed模式:内容通过匹配用户需要,推送给用户。(节省用户时间)

    image-20230526205622445

Feed流模式

Feed流产品通常分为两种常见的模式

  1. Timeline:不做内容筛选,简单的按照内容发布时间排序,常用于好友或关注。例如朋友圈等。
    • 优点:信息全面,不会有缺失,实现相对简单。
    • 缺点:信息杂乱无章,用户不一定感兴趣,内容获取效率低。
  2. 智能排序:利用智能算法屏蔽掉违规的、用户不感兴趣的内容。推送用户感兴趣的信息来吸引用户,增加用户的黏度。
    • 优点:投喂用户感兴趣的信息,用户粘度较高,容易沉迷。
    • 缺点:如果算法不精准,则会可能起到反作用。

实现方案

拉模式

拉模式也称为读扩散。

每个被关注的人都会有一个“收件箱”,发送的消息都会先存入其中。而关注的人与之对应的有一个“收件箱”,它只有在读消息的时候才会去被关注的人那里拉取发布的消息并将其进行时间排序。这种模式的优点在于节省内存空间(收件箱读完之后就可以将其清理掉,后续读的时候再重新拉取,只保留了一份在发件人的发件箱里)。缺点也显而易见耗时大,延迟高(因为每次读的时候都要重新拉取数据)

image-20230528210708432

推模式

推模式叫做写扩散。与拉模式恰恰相反,被关注的人没有自己的“发件箱”,所以当他们发布消息的时候会自动推送到关注人的收件箱中进行保存。所以该模式的优点在于延迟低,缺点为占用内存大

image-20230528211841685

推拉结合模式

别称为读写混合,兼容推和拉两种模式的优点。

对于普通的博主,其对应的粉丝也很少,所以可以采取“推模式”,低延迟,用户体验较好。而那些大V,粉丝很多,但其粉丝也分为三种:一种是关注后就从来没有去读过消息(俗称“僵尸粉”),另一部分是平时偶尔读取消息的普通粉丝,还有一小部分天天都要读取信息的活跃粉丝(俗称“真爱粉”)。针对这三类粉丝,前两种可以采用拉模式,当他们需要读取消息的时候采取发件箱中获取信息,这样节省空间。而对于那一小部分活跃粉丝则采用推模式,降低延迟,提升用户体验。

image-20230528212450154

拉模式推模式推拉结合
写比例
读比例
用户读写延迟
实现难度复杂简单很复杂
使用场景很少使用用户量少用户量很大(过千万)

收件箱可以用Redis中的SortedSet实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值