推拉结合

推数据和拉数据都有什么优缺点?在用户的信息流中,推数据的实现其实更简单。姚晨发了条微博,只需要取出姚晨粉丝的信息流,依次推给粉丝就OK了。拉数据的逻辑实现就非常复杂,需要获取所有我关注用户的动态,并对其进行整合,每次刷新、或者加载更多需要判断的逻辑就更多。

姚晨粉丝1000万,如果有1000万个姚晨同时更新了一条动态,数据要推到什么时候?假设这个情况真的发生了,那么首先肯定这是一个并行的操作,其次网络以及缓存那么快,再加上一些算法优化,我相信超过不了5分钟吧。而且给所有粉丝推数据也是不现实的。

为什么不是给所有姚晨的粉丝推数据?假设用户A关注了姚晨之后就再也没有玩过微博,在有限的内存空间维护用户A的信息流会变得毫无意义。所以推的对象应该是活跃的用户,或者是当天的在线用户。

用户信息流(Feed)构建

数据存储基于Redis的ZSet数据结构。ZSet优势非常明显:自动排序。信息流按照时间排序正是利用了这一点。为什么不考虑使用List,最基本的一点就是取消关注用户A(或者用户A删除了刚刚发的动态)之后,删除粉丝信息流中A的动态变得非常困难:一个可怕的遍历操作。

用户信息流该怎么创建?APP端用户对信息流有两个基本操作,下拉刷新和上拉加载更多。对于活跃用户,他的信息流都是推过来的,每时每刻都是最新的,所以只考虑数据显示逻辑就OK了。对于不活跃的怎么处理了,这个分支有点多?

如果用户A消失一周之后又想看姚晨的状态,怎么办?很显然用户A一下由僵尸粉变成了活跃粉,Redis里没有他任何的信息流数据(因为他消失的时间太久了),信息流需要完全重建。我们首先获取他关注的所有用户,假设为用户群B。筛选用户群B中今日更新动态的用户,然后合并信息流,依次类推。

如果用户A消失2天之后又想看姚晨的状态,此时系统已经停止了对他的实时推送,但是他的信息流却依然存在,只是缺少了(他的信息流中)最早动态时间到当前时间这段间隔的动态。重构该期间的动态。

综上所述:停止信息流实时更新的时间间隔、信息流过期时间、用户最后一次更新动态的时间都是需要认真权衡的。

区分冷热数据

也就是区分活跃用户和不活跃用户。活跃用户的几个属性:1. 用户最后一次发帖的时间;2. 用户最后一次登录的时间;3. 用户只查看不发帖;4. 用户今天是否在线。等等

如何衡量用户今日是否在线?需要找一个定义标准:用户今日浏览过、或者用户今日登陆过。本质上说就是找到一个:用户今日有过与APP交互的动作。

总结:

文中信息流和时间流混用,但是表示的是同一个意思。简单介绍了我对时间流的看法(只是我个人的认识,不知道微博具体是如何实现的)。大家认真看完了的话,就赶紧评论互喷起来吧。

注:博客迁移地址:https://segmentfault.com/a/1190000006667829
觉得有帮助,请打赏:

探讨微博时间流的实现相关推荐

  1. 微博引流:五大高效核心策略带你玩转微博实战引流(100%独家原创)

    流量是一切生意的本质,无流量谈何营销:如果你掌握了精准引流的思维和技巧那么我相信你绝对不会缺客户,不管你做微商还是做任何网上的其它生意都会很轻松!今天为大家分享的是微博引流的几大核心技巧!掌握这几大核 ...

  2. 微商卖茶叶如何通过微博引流?要先熟悉并利用好微博自身这个平台

    微商卖茶叶如何通过微博引流?要先熟悉并利用好微博自身这个平台 相信很多朋友们最近都发现了一个小问题,那就是微商从化妆品.保险渐渐转变为卖茶叶.一瞬间仿佛国人对于茶叶的需求变的非常大,似乎喜好喝茶的人无 ...

  3. 2019如何快速养实时号引流精准粉丝?微博引流实战技巧篇

    大家好我是森哥,这节课我将跟大家分享一下微博养实时号的方法和技巧.微博实时号可以说是我们在进行微博引流操作的重中之重,如果你的微博不是实时号,那么可以说你至少失去了一半以上的战斗力,微博是一个开放平台 ...

  4. 微博搜索引流与微博推荐引流有什么不同,2种微博引流方法哪个精准引流效果更好呢?

    微博引流的核心在于搜索引流和推荐引流,对于操作微博引流的微商来说,如何把微博搜索引流和推荐引流做好,一定要懂这2种引流思维!微博搜索引流与微博推荐引流有什么不同,2种微博引流方法哪个精准引流效果更好呢 ...

  5. 微商卖零食如何通过微博引流?成功开启新的销售渠道

    微商卖零食如何通过微博引流?成功开启新的销售渠道 做互联网零食营销的朋友们或多或少都会遇到过市场的挤压以及不同行业对我们带来的冲击,只有通过开启新的渠道和新方式,才能够帮助我们有效的缓解单一渠道所带来 ...

  6. 滋补品微商怎么通过微博引流?微商们如何抓住其中得到商机?

    滋补品微商怎么通过微博引流?微商们如何抓住其中得到商机? 随着生活水平的不断提高,人们的饮食观念也逐渐从"吃饱"转变为"吃好",不少人开始着眼于保健品,已引起大 ...

  7. chronodex怎么用_以终为始的时间流管理

    创作大纲 01 对我很有启发的管理术 1-1 来源:@rika 「以终为始」的时间管理 (图片来源:微博博主@rika-丽卡) 从我近五年接触手帐以来,个人的管理方法与博主rika大体相近,于是从她的 ...

  8. 微博引流到公众号继续阅读,需要跳转链接到微信打开继续付费阅读,如何设置这个跳转链接呢?

    这种需求是基于想利用微信的付费阅读功能或者微信服务号的付费小说阅读. 简单来说,就是用天天外链这样的工具来生成一个跳转链接即可.. 点击此处,了解天天外链如何点击跳转引流http://nilife.c ...

  9. 微商怎么通过微博引流?微商用微博推广技巧

    微商引流主要分为微信和微博两种,两者可以兼用,但是前者主要在于关系维护.沟通和老客户沉淀,然而前期通过微信引流很难,微信引流可以通过公众号自媒体引流,但是这样是直接引流到公众号而不是个人微信号,如果需 ...

最新文章

  1. 图论基础知识--最小生成树算法kruskal(克鲁斯克尔)和普里姆算法(Prim算法);最短路径算法Dijkstra(迪杰斯特拉)和Floyd(弗洛伊德)
  2. python 字符串find方法怎么用_Python字符串find()方法
  3. 边工作边刷题:70天一遍leetcode: day 51
  4. 界面无小事(六):来做个好看得侧拉菜单!
  5. windows/linuxjdk安装,jdk1.6升级到1.7
  6. “NLP的那些事儿”开张了!
  7. vim 编辑器常用命令
  8. docker安装vim命令
  9. 金融工程学(六):互换的定价与风险分析
  10. 10年外贸人工具:邮件群发软件工具哪个好?
  11. 计算机上显示找不到无线网络连接,电脑上网时为什么只显示宽带连接不显示无线网络连接?...
  12. [数据结构与算法 DSA 林轩田] 1. Introduction to Data Structure and Algorithm
  13. 第十二届“中国软件杯”大赛:A10-基于机器学习的分布式系统故障诊断系统——baseline(二)
  14. 团队对员工工作积极性的影响
  15. Mysql——》通信方式:半双工
  16. 多少秒算长镜头_电影中什么是长镜头画面(9个经典长镜头)
  17. 3GPP TS 23501-g51 中英文对照 | 4.3.2 Roaming architecture
  18. mysql导入指定数据库_mysql命令行导入sql文件到指定数据库的方法
  19. 1.5亿元融资,杉岩数据加速以数据为核心的新存储市场落地
  20. Scala学习笔记(三)

热门文章

  1. 图07 --- 关键路径
  2. 第六届“NOI与中小学计算机教育”论坛举办通知
  3. Go源码阅读——map.go
  4. 万法裨益,实战为王1
  5. [SAP]JCO连接错误配置日志之无路由
  6. SAP ME01 创建货源清单
  7. 2017-2018-2 20179209《网络攻防》第二周作业
  8. 重磅:饶毅正式举报裴钢院士!
  9. 微软和苹果、Google站在一起:HTML5才是互联网的未来
  10. 配对交易之统计套利配对:协整(cointegration)