陌陌Feed讀後總結
參考:
http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659597071&idx=1&sn=cd8df9f8c52dfbfb54e65adbe19fae27&scene=23&srcid=0509WNSUJdcT5Z2HpGaegBaD#rd
下面是Feed系統的整體架構圖:
資源層主要使用Redis、MongoDB、HBase等NoSQL型別資料庫。
儲存層是內部RPC服務,根據業務場景和儲存特性,組合各種資料庫資源。
業務層呼叫儲存層讀寫資料,實現產品邏輯,直接面向使用者使用。
陌陌初期採用Mongodb,主要看重無模式的特性,儲存JSON方便.
Redis 採用Mod取餘Hash的方式.
透過節點資料複製,快速的翻倍擴容,省去了快取預熱的過程。
原文這部分沒有細說.
假如原來有三個redis例項,並且各自帶了Slave.
透過 id mod 3 取餘,判斷存放位置.
擴容的時候,僅僅需要把slave Readonly去掉,
前端透過 id mod 6 取餘,判斷存放位置即可.然後斷掉Redis 主從複製.
因為 id mod 6 == 0 的情況 必定 id mod 3 == 0
比如 10 mod 3 = 1 ,現在改為 10 mod 6 = 4 正好 落在原來的備機上.
待完成之後,需要清理每個例項上一半冗餘的資料.不過一般設定了過期時間,可以等待他自然過期.
陌陌朋友圈開始用的是推的方式,後來改成拉取.
我倒是覺得推拉結合,似乎更好.
比如
使用者9066357的朋友有新訊息.
使用時間戳作為Score,內容就是資料庫中記錄的ID
127.0.0.1:6379> zadd 9066357 20160510112200 101
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112201 102
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112203 103
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112204 104
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112205 105
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112206 106
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112207 107
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112208 108
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112209 109
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112210 110
(integer) 1
使用者登入,獲取最近的5個訊息
127.0.0.1:6379> ZRANGE 9066357 -5 -1
1) "106"
2) "107"
3) "108"
4) "109"
5) "110"
然後除了最近的幾個資料,全部刪除.
127.0.0.1:6379> ZREMRANGEBYRANK 9066357 0 -8
(integer) 3
127.0.0.1:6379> ZRANGE 9066357 0 -1
1) "104"
2) "105"
3) "106"
4) "107"
5) "108"
6) "109"
7) "110"
保留指定個數的內容.避免記憶體佔用過大.
如果Redis快取Miss,則查詢資料庫.
遍歷我的好友,找到最近發表過Feed的人
遍歷最近發表過Feed的人,得到id和time
合併到我的timeline
http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659597071&idx=1&sn=cd8df9f8c52dfbfb54e65adbe19fae27&scene=23&srcid=0509WNSUJdcT5Z2HpGaegBaD#rd
下面是Feed系統的整體架構圖:
資源層主要使用Redis、MongoDB、HBase等NoSQL型別資料庫。
儲存層是內部RPC服務,根據業務場景和儲存特性,組合各種資料庫資源。
業務層呼叫儲存層讀寫資料,實現產品邏輯,直接面向使用者使用。
陌陌初期採用Mongodb,主要看重無模式的特性,儲存JSON方便.
Redis 採用Mod取餘Hash的方式.
透過節點資料複製,快速的翻倍擴容,省去了快取預熱的過程。
原文這部分沒有細說.
假如原來有三個redis例項,並且各自帶了Slave.
透過 id mod 3 取餘,判斷存放位置.
擴容的時候,僅僅需要把slave Readonly去掉,
前端透過 id mod 6 取餘,判斷存放位置即可.然後斷掉Redis 主從複製.
因為 id mod 6 == 0 的情況 必定 id mod 3 == 0
比如 10 mod 3 = 1 ,現在改為 10 mod 6 = 4 正好 落在原來的備機上.
待完成之後,需要清理每個例項上一半冗餘的資料.不過一般設定了過期時間,可以等待他自然過期.
陌陌朋友圈開始用的是推的方式,後來改成拉取.
我倒是覺得推拉結合,似乎更好.
比如
使用者9066357的朋友有新訊息.
使用時間戳作為Score,內容就是資料庫中記錄的ID
127.0.0.1:6379> zadd 9066357 20160510112200 101
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112201 102
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112203 103
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112204 104
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112205 105
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112206 106
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112207 107
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112208 108
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112209 109
(integer) 1
127.0.0.1:6379> zadd 9066357 20160510112210 110
(integer) 1
使用者登入,獲取最近的5個訊息
127.0.0.1:6379> ZRANGE 9066357 -5 -1
1) "106"
2) "107"
3) "108"
4) "109"
5) "110"
然後除了最近的幾個資料,全部刪除.
127.0.0.1:6379> ZREMRANGEBYRANK 9066357 0 -8
(integer) 3
127.0.0.1:6379> ZRANGE 9066357 0 -1
1) "104"
2) "105"
3) "106"
4) "107"
5) "108"
6) "109"
7) "110"
保留指定個數的內容.避免記憶體佔用過大.
如果Redis快取Miss,則查詢資料庫.
遍歷我的好友,找到最近發表過Feed的人
遍歷最近發表過Feed的人,得到id和time
合併到我的timeline
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2096963/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 染陌的 2017 年度總結
- 染陌的2018年度總結
- 陌陌財報圖解:2017年Q4陌陌淨利潤達1.1億美元圖解
- 陌陌還會重回遊戲懷抱嗎?遊戲
- 陌陌通訊協議的學習協議
- 陌陌財報圖解:2015年Q1陌陌淨利潤670萬美元 同比扭虧圖解
- 陌陌財報圖解:2015年Q2陌陌淨利潤170萬美元 同比扭虧圖解
- 陌陌財報圖解:2018年Q2陌陌淨利潤1.178億美元 同比增長94%圖解
- 陌陌財報圖解:2018年Q1陌陌淨營收達27.6億元 同比增長64%圖解營收
- 陌陌財報:2016年Q2陌陌營收同比增長222% 視訊直播立大功營收
- 陌陌財報圖解:2014年Q4陌陌營收1860萬美元 同比增長702.3%圖解營收
- 陌陌財報:2015年Q3陌陌淨營收為3750萬美元 同比增長204%營收
- 陌陌財報圖解:2017年Q3陌陌利潤7910萬美元 同比增長103%圖解
- 陌陌財報圖解:2016年Q1陌陌直播營收1560萬美元 成最大收入來源圖解營收
- 陌陌躋身移動廣告平臺四強
- iOS曝ZipperDown漏洞 快手、陌陌等均受影響!iOS
- 從業4年網際網路寒潮下我的面試總結(美團\陌陌\百度\阿里\京東)面試阿里
- 陌陌登入裝置異常怎麼解決
- 解決陌陌註冊新號就提示裝置異常
- 陌陌:2Q20營收38.68億元 同比減少6.8%營收
- 阿里解決資金問題 陌陌私有化破局阿里
- CNNIC:陌陌現場,這可能是一筆好生意CNN
- 運營級仿微信仿陌陌仿快手app原始碼出售轉讓APP原始碼
- 2019年營收超170億,陌陌增長的秘密何在營收
- 工信部約談陌陌:要求對ZAO App資料安全問題自查整改APP
- 陌陌現“20天掙80萬”廣告 暗藏網路盜車內幕
- 社交app走約炮路線早晚得死,陌陌,你還能約多久?APP
- 新版陌陌支援“以歌會友” 實現聽歌聊天兩不誤
- 陌陌:2019全年淨營收170.151億元 同比增長27%營收
- 受阿里系加入買方財團影響 陌陌股價上漲34%阿里
- 陌陌:2020年全年營收150.242億元 淨利潤28.962億元營收
- 三大網站上繳罰款32萬 陌陌公開道歉關閉涉黃群組網站
- 離婚率高怪陌陌?父親節讓資料談談離婚——資訊圖
- 陌陌公佈第二季度財報:淨營收同比增長264%營收
- Facebook、微信和陌陌 一起來看看社交應用的商業化嘗試
- 陌陌:1Q21淨營收34.706億元 淨利潤6.337億元營收
- 陌陌雙十一大資料:大東北"單身狗"數量全國領先大資料
- WordPress快速建站教程-陌小雨部落格