国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

探討微博時間流的實現(xiàn)

Kylin_Mountain / 1113人閱讀

摘要:微博系統(tǒng)的推模式和拉模式實現(xiàn)推拉結合推數(shù)據(jù)和拉數(shù)據(jù)都有什么優(yōu)缺點在用戶的信息流中,推數(shù)據(jù)的實現(xiàn)其實更簡單。姚晨發(fā)了條微博,只需要取出姚晨粉絲的信息流,依次推給粉絲就了。簡單介紹了我對時間流的看法只是我個人的認識,不知道微博具體是如何實現(xiàn)的。

微博feed系統(tǒng)的推(push)模式和拉(pull)模式實現(xiàn)timeline
推拉結合

推數(shù)據(jù)和拉數(shù)據(jù)都有什么優(yōu)缺點?在用戶的信息流中,推數(shù)據(jù)的實現(xiàn)其實更簡單。姚晨發(fā)了條微博,只需要取出姚晨粉絲的信息流,依次推給粉絲就OK了。拉數(shù)據(jù)的邏輯實現(xiàn)就非常復雜,需要獲取所有我關注用戶的動態(tài),并對其進行整合,每次刷新、或者加載更多需要判斷的邏輯就更多。

姚晨粉絲1000萬,如果有1000萬個姚晨同時更新了一條動態(tài),數(shù)據(jù)要推到什么時候?假設這個情況真的發(fā)生了,那么首先肯定這是一個并行的操作,其次網(wǎng)絡以及緩存那么快,再加上一些算法優(yōu)化,我相信超過不了5分鐘吧。而且給所有粉絲推數(shù)據(jù)也是不現(xiàn)實的。

為什么不是給所有姚晨的粉絲推數(shù)據(jù)?假設用戶A關注了姚晨之后就再也沒有玩過微博,在有限的內(nèi)存空間維護用戶A的信息流會變得毫無意義。所以推的對象應該是活躍的用戶,或者是當天的在線用戶。

用戶信息流(Feed)構建

數(shù)據(jù)存儲基于Redis的ZSet數(shù)據(jù)結構。ZSet優(yōu)勢非常明顯:自動排序。信息流按照時間排序正是利用了這一點。為什么不考慮使用List,最基本的一點就是取消關注用戶A(或者用戶A刪除了剛剛發(fā)的動態(tài))之后,刪除粉絲信息流中A的動態(tài)變得非常困難:一個可怕的遍歷操作。

用戶信息流該怎么創(chuàng)建?APP端用戶對信息流有兩個基本操作,下拉刷新和上拉加載更多。對于活躍用戶,他的信息流都是推過來的,每時每刻都是最新的,所以只考慮數(shù)據(jù)顯示邏輯就OK了。對于不活躍的怎么處理了,這個分支有點多?

如果用戶A消失一周之后又想看姚晨的狀態(tài),怎么辦?很顯然用戶A一下由僵尸粉變成了活躍粉,Redis里沒有他任何的信息流數(shù)據(jù)(因為他消失的時間太久了),信息流需要完全重建。我們首先獲取他關注的所有用戶,假設為用戶群B。篩選用戶群B中今日更新動態(tài)的用戶,然后合并信息流,依次類推。

如果用戶A消失2天之后又想看姚晨的狀態(tài),此時系統(tǒng)已經(jīng)停止了對他的實時推送,但是他的信息流卻依然存在,只是缺少了(他的信息流中)最早動態(tài)時間到當前時間這段間隔的動態(tài)。重構該期間的動態(tài)。
綜上所述:停止信息流實時更新的時間間隔、信息流過期時間、用戶最后一次更新動態(tài)的時間都是需要認真權衡的。

區(qū)分冷熱數(shù)據(jù)
冷數(shù)據(jù)、溫數(shù)據(jù)和熱數(shù)據(jù)。冷數(shù)據(jù)——性別、興趣、常住地、職業(yè)、年齡等數(shù)據(jù)畫像,表征“這是什么樣的人”;溫數(shù)據(jù)——近期活躍應用、近期去過的地方等具有一定時效性的行為數(shù)據(jù),表征“最近對什么感興趣”;熱數(shù)據(jù)——當前地點、打開的應用等場景化明顯的、稍縱即逝的營銷機會,表征“正在哪里干什么”。

如何定義活躍用戶?基本上的答案都是:具體要看這個產(chǎn)品是什么類型的。我覺得用戶產(chǎn)生行為是根據(jù)產(chǎn)品來定義的:比如網(wǎng)易云閱讀(閱讀類的),用戶只要看了某本書的目錄、看了作者簡介,下載閱讀了,都算是活躍;用戶去做了一些設置,例如換頭像,或者是完善個人信息,這些也都是可以算的。再比如映客(直播類的),用戶只要打開看了某段視頻,搜索了某些關鍵詞,給某個視頻評論點贊了,也都算是活躍。所以確實產(chǎn)品不同,定義維度也不同,回歸到產(chǎn)品戰(zhàn)略上,用戶發(fā)生的這些行為是不是產(chǎn)品設計時想要的,用戶哪些參與行為是有效的,那么,有效的這些行為往往都是屬于活躍行為。

也就是區(qū)分活躍用戶和不活躍用戶。活躍用戶的幾個屬性:

用戶最后一次發(fā)帖的時間

用戶最后一次登錄的時間

用戶只查看不發(fā)帖

用戶今天是否在線

如何衡量用戶今日是否在線?需要找一個定義標準:用戶今日瀏覽過、或者用戶今日登陸過。本質(zhì)上說就是找到一個:用戶今日有過與APP交互的動作。

總結:

文中信息流和時間流混用,但是表示的是同一個意思。簡單介紹了我對時間流的看法(只是我個人的認識,不知道微博具體是如何實現(xiàn)的)。大家認真看完了的話,就趕緊評論互噴起來吧。

文章為原創(chuàng),轉載請注明鏈接地址。覺得有幫助的話,不妨打個賞吧!

參考文章:

1. 冷數(shù)據(jù)、溫數(shù)據(jù)、熱數(shù)據(jù),難道數(shù)據(jù)也是有溫度的?
2. 淺談如何定義活躍用戶

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21906.html

相關文章

  • Python模擬博登陸,親測有效

    摘要:今天想做一個微博爬個人頁面的工具,滿足一些不可告人的秘密。那么首先就要做那件必做之事模擬登陸代碼是參考了我對代碼進行了優(yōu)化,重構成了版本,并且加入了大量注釋方便大家學習。接下來再請求這個,這樣就成功登錄到微博了。 showImg(https://segmentfault.com/img/remote/1460000018544062?w=900&h=600); 今天想做一個微博爬個人頁...

    ruicbAndroid 評論0 收藏0
  • 寫一個 Chrome 擴展之 Flat Weibo —— 簡潔你的博世界

    摘要:一般而言,擴展會對用戶瀏覽的頁面進行相應的操作和一些數(shù)據(jù)傳遞,本案例的本質(zhì)是,當用戶瀏覽網(wǎng)頁版微博時,擴展會向當前頁面注入預先寫好的,這樣便對微博網(wǎng)頁版進行了樣式重構。采用這樣的方法依次處理所有你不想看到的元素,你的微博便會簡潔很多。 0x00. 前言 微博現(xiàn)在也是變得越來越臃腫,廣告越來越多,早已不再是微博了,這讓微博深度用戶的我感到十分焦灼。由于之前就嘗試寫過 Chrome 插件,...

    fredshare 評論0 收藏0
  • ELSE 技術周刊(2017.11.27期)

    摘要:而且已開源出來,隨著容器技術發(fā)展,大文件分發(fā)一直是個重要的問題,所以是一件值得研究的技術。實用推薦檢定攻略是近期推出的一項認證,用以認證開發(fā)者的移動網(wǎng)頁開發(fā)技能。凈化,移除中不必要的文件技術周刊由小組出品,匯聚一周好文章,周刊原文。 業(yè)界動態(tài) 直擊阿里雙11神秘技術:PB級大規(guī)模文件分發(fā)系統(tǒng)蜻蜓 文章主要介紹了阿里的PB級大規(guī)模文件分發(fā)系統(tǒng)蜻蜓, 通過使用P2P技術同時結合智能壓縮、智...

    xushaojieaaa 評論0 收藏0
  • 【網(wǎng)易云信】海外推流部署實踐

    摘要:為了處理解決這個問題,需要提高海外直播的接流覆蓋率,并針對鏈路進行優(yōu)化,從而有效降低整體從推流到拉流的卡頓率。 今天主要分享我們海外直播鏈路優(yōu)化的問題和解決問題的一個思路,介紹的主要流程,大概就是拋出一個問題,簡單介紹我們解決的思路,在這個過程中碰到的一些問題和我們具體進行的一些思考,以及后續(xù)可以再進行一些額外優(yōu)化的處理。 指標定義 在介紹整體內(nèi)容之前,首先定義一下我們的性能指標,由于...

    alighters 評論0 收藏0
  • 軟件架構模式

    摘要:事件處理器是自包含和獨立的,解耦于架構。因其分布式和異步的性質(zhì),事件驅(qū)動架構的實現(xiàn)相對復雜,主要是由于它的異步和分布式特性。微內(nèi)核架構微內(nèi)核架構模式也被稱為插件架構模式。 來自于OReilly免費的電子書:Software Architecture Patterns showImg(https://segmentfault.com/img/remote/1460000009652123...

    ZHAO_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<