精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

新浪微博關系服務與Redis的故事

運維 系統運維 Redis
新浪微博的工程師們曾經在多個公開場合都講到過,微博平臺當前在使用并維護著可能是世界上最大的Redis集群,其中最大的一個業務,單個業務使用了超過 10T 的內存,這里說的就是微博關系服務。

新浪微博的工程師們曾經在多個公開場合都講到過,微博平臺當前在使用并維護著可能是世界上***的Redis集群,其中***的一個業務,單個業務使用了超過 10T 的內存,這里說的就是微博關系服務。

風起

2009年微博剛剛上線的時候,微博關系服務使用的是最傳統的 Memcache+Mysql 的方案。Mysql 按 uid hash 進行了分庫分表,表結構非常簡單:

業務方存在兩種查詢:

  • 查詢用戶的關注列表:select touid from table where fromuid=?order by addTime desc
  • 查詢用戶的粉絲列表:select fromuid from table where touid=?order by addTime desc

兩種查詢的業務需求與分庫分表的架構設計存在矛盾,最終導致了冗余存儲:以 fromuid 為hash key存一份,以 touid 為hash key再存一份。memcache key 為 fromuid.suffix ,使用不同的 suffix 來區分是關注列表還是粉絲列表,cache value 則為 PHP Serialize 后的 Array。后來為了優化性能,將 value 換成了自己拼裝的 byte 數組。

云涌

2011年微博進行平臺化改造過程中,業務提出了新的需求:在核心接口中增加了“判斷兩個用戶的關系”的步驟,并增加了“雙向關注”的概念。因此兩個用戶的關系存在四種狀態:關注,粉絲,雙向關注和無任何關系。為了高效的實現這個需求,平臺引入了 Redis 來存儲關系。平臺使用 Redis 的 hash 來存儲關系:key 依然是 uid.suffix,關注列表,粉絲列表及雙向關注列表各自有一個不同的 suffix,value 是一個hash,field 是 touid,value 是 addTime。order by addTime 的功能則由 Service 內部 sort 實現。部分大V的粉絲列表可能很長,與產品人員的溝通協商后,將存儲限定為“***的5000個粉絲列表”。

微博關系存儲Redis結構

需求實現:

  • 查詢用戶關注列表:hgetAll uid.following ,then sort
  • 查詢用戶粉絲列表:hgetAll uid.follower,then sort
  • 查詢用戶雙向關注列表:hgetAll uid.bifollow,then sort
  • 判斷兩個用戶關系:hget uidA.following uidB && hget uidB.following uidA

后來又增加了幾個更復雜的需求:“我與他的共同關注列表”、“我關注的人里誰關注了他”等等,就不展開來講了。

平臺在剛引入 Redis 的一段時間里踩了不少坑,舉幾個例子:

1、運維工具和流程從零開始做,運維成熟的速度趕不上業務增長的速度:在還沒來得及安排性能調優的工作,fd 已經達到默認配置的上限了,***我們只能趁凌晨業務低峰期重啟 Redis 集群,以便設置新的 ulimit 參數;

2、平臺最開始使用的 Redis 版本是 2.0,因為 Redis 代碼足夠簡單,從引入到微博起,我們就開始對其進行了定制化開發,從主從復制,到寫磁盤限速,再到內存管理,都進行了定制。導致的結果是,有一段時間,微博的線上存在超過5種不同的 Redis 修改版,對于運維,bugfix,升級都帶來了巨大的麻煩。后來由田風軍 @果爸果爸 為內部 Redis 版本提供了不停機升級功能后,才慢慢好轉。

3、平臺有一個業務曾經使用了非默認 db ,后來費了好大力氣去做遷移

4、平臺還有一個業務需要定期對數據進行 flush db ,以騰出空間存儲***數據。為了避免在 flush db 階段影響線上業務,我們從 client 到 server 都做了大量的修改。

5、平臺每年長假前都會做一些線上業務排查,和故障模擬(2013年甚至做了一個名叫 Touchstone 的容災壓測系統)。2011年十一假前,我們用 iptables 將 Redis 端口的所有包都 drop 掉,結果 client 端等了 120 秒才返回。于是我們在放假前熬夜加班給 client 添加超時檢測功能,但真正上線還是等到了假期回來后。

破繭

對于微博關系服務,***的挑戰還是容量和訪問量的快速增長,這給我們的 Redis 方案帶來了不少的麻煩:

***個碰到的麻煩是 Redis 的 hgetAll 在 hash size 較大的場景下慢請求比例較高。我們調整了 hash-max-zip-size,節約了1/3的內存,但對業務整體性能的提升有限。***,我們不得不在 Redis 前面又擋了一層 memcache,用來抗 hgetAll 讀的問題。

第二個麻煩是新上的需求:“我關注的人里誰關注了他”,由于用戶的粉絲列表可能不全,在這種情況下就不能用關注列表與粉絲列表求交集的方式來計算結果,只能降級到需求的字面描述步驟:取我的關注人列表,然后逐個判斷這些人里誰關注了他。client 端分批并行發起請求,還好 Redis 的單個關系判斷非常快。

第三個麻煩,也是***的麻煩,就是容量增長的問題了。最初的設計方案,按 uid hash 成 16 個端口,每臺 64G 內存的機器上部署 2 個端口,每個業務 IDC 機房部署一套。后來,每臺機器上就只部署一個端口了。再后來,128G 內存的機器還沒有進入公司采購目錄,64G 內存就即將 OOM 了,所以我們不得不做了一次端口擴容:16端口拆64端口,依然是每臺 64G 內存機器上部署 2 個端口。再后來,又只部署一個端口。再后來,升級到 128G 內存機器。再后來,128G 機器上出現 OOM 了!現在怎么辦?

化蝶

為了從根本上解決容量的問題,我們開始尋找一種本質的解決方案。最初選擇引入 Redis 作為一個 storage,是因為用戶關系判斷功能請求的數據熱點不是很集中,長尾效果明顯,cache miss 可能會影響核心接口性能,而保證一個可接受的 cache 命中率,耗費的內存與 storage 差別不大。但微博經過了 3 年的演化,最初作為選擇依據的那些假設前提,數據指標都已經發生了變化:隨著用戶基數的增大,冷用戶的絕對數量也在增大;Redis 作為存儲,為了數據可靠性必須開啟 rdb 和 aof,而這會導致業務只能使用一半的機器內存;Redis hash 存儲效率太低,特別是與內部極度優化過的 RedisCounter 對比。種種因素加在一起,最終確定下來的方向就是:將 Redis 在這里的 storage 角色降低為 cache 角色。

前面提到的微博關系服務當前的業務場景,可以歸納為兩類:一類是取列表,一類是判斷元素在集合中是否存在,而且是批量的。即使是 Redis 作為 storage 的時代,取列表都要依賴前面的 memcache 幫忙抗,那么作為 cache 方案,取列表就全部由 memcache 代勞了。批量判斷元素在集合中是否存在,redis hash 依然是***的數據結構,但存在兩個問題:cache miss 的時候,從 db 中獲取數據后,set cache 性能太差:對于那些關注了 3000 人的微博會員們,set cache 偶爾耗時可達到 10ms 左右,這對于單線程的 Redis 來說是致命的,意味著這 10ms 內,這個端口無法提供任何其它的服務。另一個問題是 Redis hash 的內存使用效率太低,對于目標的 cache 命中率來說,需要的 cache 容量還是太大。于是,我們又祭出 “Redis定制化”的法寶:將 redis hash 替換成一個“固定長度開放hash尋址數組”,在 Redis 看來就是一個 byte 數組,set cache 只需要一次 redis set。通過精心選擇的 hash 算法及數組填充率,能做到批量判斷元素是否存在的性能與原生的 redis hash 相當。

通過微博關系服務 Redis storage 的 cache 化改造,我們將這里的 Redis 內存占用降低了一個數量級。它可能會失去“***的單個業務Redis集群”的頭銜,但我們比以前更有成就感,更快樂了。

【作者簡介】唐福林(@唐福林),微博技術委員會成員,微博平臺資深架 構師,致力于高性能高可用互聯網服務開發,及高效率團隊建設。從2010年開始深度參與微博平臺的建設,目前工作重心為微博服務在無線環境下 的端到端全鏈路優化。業余時間他是一個一歲女孩的爸爸,最擅長以45°涼開水沖泡奶粉。

感謝張龍對本文的審校。

責任編輯:黃丹 來源: infoq
相關推薦

2015-12-21 09:39:31

2017-04-15 21:36:05

微服務新浪微博WOT

2013-10-10 09:05:26

新浪微博Redishadoop

2013-07-10 14:15:38

php新浪微博

2017-06-14 08:47:04

混合云PHP服務化

2018-08-06 10:50:02

新浪微博短視頻

2013-11-29 12:34:50

敏捷運維新浪微博許楊毅

2015-09-24 18:08:50

微博架構架構演進架構

2012-11-23 09:32:20

新浪微博微信

2015-01-21 15:28:16

Android源碼新浪微博

2013-07-01 18:34:47

個推案例新浪微博

2011-12-08 16:10:18

2011-07-22 10:38:55

HTC新浪Facebook

2017-11-25 19:11:45

微服務架構設計

2011-12-08 16:31:43

新浪微博開放平臺

2011-12-08 16:51:55

新浪微博開放平臺

2015-07-06 13:36:14

Redis微博關注關系

2017-04-27 11:15:05

新浪微博LNMP架構侯青龍

2014-01-07 10:46:39

2013-05-27 09:52:35

Android開發移動開發移動應用
點贊
收藏

51CTO技術棧公眾號

69堂成人精品视频免费| 亚洲色图第一页| 国产精品裸体瑜伽视频| 欧美亚洲日本| 极品尤物av久久免费看| 欧美国产日本在线| 一道本在线观看| 免费一级欧美片在线观看网站| 亚洲国产视频直播| 先锋影音欧美| 亚洲av无码国产精品久久不卡| 亚洲影音一区| 欧美久久精品一级黑人c片| 97人妻天天摸天天爽天天| 日韩在线你懂得| 欧美性xxxxxxxxx| 亚洲精品偷拍视频| 国产专区在线| 99视频一区二区| 成人黄色短视频在线观看| 97超碰人人干| 欧美成人国产| 色婷婷综合久久久久| 日本japanese极品少妇| 国产aⅴ精品一区二区四区| 日韩欧美在线视频观看| www.好吊操| 看黄网站在线| 国产精品视频一二三区| 国产区一区二区| 国产黄色高清视频| 麻豆国产欧美日韩综合精品二区| 韩国欧美亚洲国产| 国产aaaaaaaaa| 国产欧美亚洲精品a| 亚洲韩国青草视频| 亚洲视频天天射| 麻豆精品在线| 欧美日本在线播放| 亚洲精品高清无码视频| 天堂av在线网| 午夜影院久久久| 国产91视频一区| 国产欧美黑人| 亚洲欧美电影一区二区| 亚洲人成影视在线观看| sese在线视频| 中文av一区特黄| 日韩av影视| 国产黄色在线播放| 国产亚洲欧美一区在线观看| 蜜桃视频在线观看91| 亚洲欧洲综合在线| 26uuu国产日韩综合| 久久精品国产美女| 亚洲av成人精品日韩在线播放| 成人在线综合网| 国产精品久久亚洲7777| 高潮毛片7777777毛片| 国产不卡视频在线播放| 亚洲自拍小视频免费观看| 国产视频手机在线| 国产99精品视频| 国产一区高清视频| 亚洲欧美日韩成人在线| 久久午夜羞羞影院免费观看| 热re99久久精品国产99热| 你懂的在线视频| 日本一区二区三区视频视频| 亚洲v日韩v欧美v综合| 137大胆人体在线观看| 国产精品成人一区二区三区夜夜夜| 在线一区高清| 污片在线免费观看| 精品福利在线视频| 青青在线免费观看视频| 欧美日韩伦理一区二区| 5566中文字幕一区二区电影| 宇都宫紫苑在线播放| 91成人在线精品视频| 亚洲国产精品电影在线观看| 一卡二卡三卡四卡| 欧美激情偷拍自拍| 欧美激情a在线| 日日夜夜综合网| 热久久国产精品| 97久草视频| 亚洲三级黄色片| 亚洲国产高清在线观看视频| 黄色小视频大全| 91丝袜在线| 欧美色爱综合网| 农村末发育av片一区二区| 女人av一区| 欧美日韩成人黄色| www.com亚洲| 国产精品系列在线观看| 久久精品国产一区二区三区日韩| 求av网址在线观看| 午夜亚洲国产au精品一区二区| 日本a√在线观看| 亚洲日本va午夜在线电影| 精品一区二区三区四区| 登山的目的在线| 亚洲美女网站| 91午夜理伦私人影院| 四虎精品成人免费网站| 亚洲天堂免费在线观看视频| 国产男女无遮挡| 欧美午夜在线播放| 亚洲精品在线91| 久久久久久久蜜桃| 久久精品国产秦先生| 久久精品人人做人人爽电影| av在线影院| 欧美主播一区二区三区美女| 捆绑裸体绳奴bdsm亚洲| 亚洲精品a级片| 日韩免费视频在线观看| 手机看片一区二区| 亚洲激情中文1区| 日日噜噜噜噜久久久精品毛片| 九九热hot精品视频在线播放| 日韩一级裸体免费视频| 色av性av丰满av| 99久久99久久久精品齐齐| 桥本有菜av在线| 日本精品裸体写真集在线观看| 亚洲第一二三四五区| chinese全程对白| 日本91福利区| 欧美日韩国产综合视频在线| mm视频在线视频| 日韩精品一区在线观看| 日韩欧美国产成人精品免费| 日本91福利区| 日韩亚洲一区在线播放| 老司机2019福利精品视频导航| 精品国产青草久久久久福利| 深夜福利影院在线观看| 精品一区二区在线视频| 亚洲欧洲三级| 久久夜夜久久| 色噜噜国产精品视频一区二区| 6080午夜伦理| wwww国产精品欧美| 精品99在线视频| 偷拍亚洲精品| 日本欧美精品在线| 九色在线免费| 在线国产亚洲欧美| 精品欧美一区二区久久久| 丝袜美腿亚洲综合| 日韩中文字幕av在线| 成人激情视屏| 久久精品国产亚洲精品2020| 国产美女www爽爽爽视频| 亚洲乱码中文字幕| 中文字幕一区二区三区人妻在线视频| 欧美日韩久久| 成人av播放| 玖玖在线播放| 亚洲丝袜av一区| 圆产精品久久久久久久久久久| 国产成人av一区| 丝袜人妻一区二区三区| 欧美一级色片| 国产激情综合五月久久| 一级毛片视频在线| 宅男噜噜噜66一区二区66| 国产suv一区二区三区| 国产成人精品综合在线观看| 真实国产乱子伦对白视频| 精品三级av在线导航| 日产精品99久久久久久| 五月婷婷在线视频| 精品国产制服丝袜高跟| 人妻丰满熟妇av无码区| 国产精品三级视频| 国产一精品一aⅴ一免费| 亚洲一卡久久| 一区二区三区四区五区视频| 亚洲一二av| 国产精品96久久久久久又黄又硬| 免费黄色在线看| 亚洲精品在线网站| 青青国产在线视频| 亚洲激情一二三区| 日韩精品电影一区二区| 老司机午夜精品99久久| 国产精品一色哟哟| 国产91一区| 成人av电影免费| 91另类视频| 久久久噜噜噜久久久| 国产精品一二三区视频| 日韩视频一区二区| 中文字幕精品视频在线观看| 一区二区三区不卡视频在线观看| 女~淫辱の触手3d动漫| 韩日精品视频一区| 欧美日韩国产精品激情在线播放| 91精品国产自产拍在线观看蜜| 国产亚洲一区在线播放| 欧美成人毛片| 青青草成人在线| v片在线观看| 一二美女精品欧洲| 亚洲精品视频91| 欧美日韩一区二区三区在线看| 日本熟妇色xxxxx日本免费看| 中文字幕中文乱码欧美一区二区| 中文字幕 日本| 国内精品不卡在线| 蜜臀久久99精品久久久酒店新书| 一本到12不卡视频在线dvd| 欧美在线激情| 欧美激情99| 91一区二区三区| 成人四虎影院| 秋霞av国产精品一区| 黑人极品ⅴideos精品欧美棵| 色偷偷88888欧美精品久久久 | 午夜小视频福利在线观看| 亚洲欧美国产精品久久久久久久 | 成人欧美一区二区三区黑人| √8天堂资源地址中文在线| 自拍偷拍亚洲一区| 免费在线观看污视频| 欧美成人一区二区三区片免费| 国产精品一区二区三区精品| 青青草视频国产| 中文文字幕文字幕高清| 国产高潮久久久| 婷婷在线免费视频| 精品众筹模特私拍视频| www欧美在线观看| 欧美日韩国内| 免费看欧美女人艹b| 亚洲色图视频网| 欧美日韩激情一区二区三区| 欧美国产一区二区三区| 日本一区视频在线| 成人片黄网站色大片免费毛片| 黄色污污网站在线观看| 三级外国片在线观看视频| 亚洲动漫在线观看| 欧美成人精品一区二区男人看| 精品精品精品| 成人国产一区二区三区精品| 在线观看成人免费视频| 欧美精品videos| 成人一区二区三| 国产亚洲精品久久久久久无几年桃| 乱精品一区字幕二区| 欧美人体视频xxxxx| 日韩在线观看中文字幕| 中文字幕一区二区三区在线视频| 国产高清久久久| 精品国产老师黑色丝袜高跟鞋| 欧美精品一区男女天堂| 欧美午夜精品久久久久免费视| 国产成人愉拍精品久久| 91麻豆精品激情在线观看最新| 国产一区二区三区日韩精品 | 国产一区二区日韩| 蜜桃传媒视频麻豆第一区免费观看| 成人午夜激情av| 国产天堂av在线| 涩涩视频在线观看免费| 综合久久伊人| 久久看片网站| 欧美综合一区二区| 欧美影院久久久| 少妇人妻大乳在线视频| 91动漫免费网站| 91caoporn在线| 免费看日本一区二区| 激情综合亚洲精品| 欧美乱妇一区二区三区不卡视频| 日本免费久久高清视频| 久草视频这里只有精品| 国产精品一区二区亚洲| 国产爆初菊在线观看免费视频网站 | 欧美成人国产精品高潮| 成人免费在线| 亚洲在线资源| 91影院在线观看| 欧美激情手机在线视频| 青青草成人免费在线视频| 中文字幕久久网| 日韩欧美黄色| 一级中文字幕一区二区| 国产精品第二页| 中文字幕人妻一区二区三区| av在线第一页| 国产精品入口| 精品欧美乱码久久久久久| 日韩精品av一区二区三区| 国产 日韩 欧美 成人| 激情久久一区二区| 久久综合九色欧美综合狠狠| 久久久免费观看视频| 樱花草www在线| 三区四区在线视频| 噜噜噜91成人网| 亚洲精品久久久久久久久久久久久 | 国产一区二区三区视频播放| 精精国产xxxx视频在线播放| 国产91高潮流白浆在线麻豆| 久久夜色撩人精品| 91精品999| 欧美a在线看| 九一久久久久久| 久久天天躁夜夜躁狠狠躁2022| 91亚洲一区二区| 羞羞的视频在线观看| 国产一区二区三区在线观看免费 | 精品伊人久久| 亚洲第一精品在线| 欧美精品免费观看二区| 成人黄色免费网| 91精品成人| 亚洲丁香婷深爱综合| 91在线视频观看免费| 免费在线观看av网站| 岛国精品在线播放| 国产日韩精品入口| 中文字幕一区三区久久女搜查官| 午夜激情在线播放| 一区二区三区视频在线看| 成人9ⅰ免费影视网站| www.国产成人| 少妇精品久久久| 欧美一级片在线看| 人人干视频在线| 日本三级在线视频| 2021久久国产精品不只是精品| 国产欧美日韩免费| 国产精品午夜影院| 亚洲色图88| 亚洲欧美国产日韩天堂区| 亚洲美女高潮久久久| 日韩网站中文字幕| 欧美日韩中文字幕综合视频| 男女裸体影院高潮| 91se在线| 国产精品天美传媒沈樵| 国产伦精品一区二区三| 国产精品国产精品国产| 久久先锋影音| 88国产精品欧美一区二区三区| 亚洲精品电影院| 精品久久影院| 亚洲人成人99网站| 久久久久国产免费| 无人区乱码一区二区三区| 欧美一级高清大全免费观看| 伊人五月天婷婷| 欧美日韩黄网站| 欧美电视剧在线看免费| 性生交大片免费看l| 久久免费视频66| 亚洲人成电影网站色xx| www中文在线| 日韩精品永久网址| 欧美激情亚洲另类| 国产精品高清无码| 夫妻av一区二区| 一区二区三区av| 成人教育av| 色婷婷综合激情| 日本国产一级片| 国产精品成人3p一区二区三区| 在线综合亚洲欧美在线视频| 熟女人妻一区二区三区免费看| 一区二区三区日本久久久| 亚洲一区第一页| 婷婷在线精品视频| 99精品国产在热久久婷婷| 国产精品电影在线观看| a毛片在线免费观看| 久久精品欧美一区二区三区麻豆| 日韩精品第1页| 精品无人乱码一区二区三区 | 免费国产在线视频| 国产视频视频一区| 亚洲区成人777777精品| 欧美gv在线| 在线成人免费观看| 逼特逼视频在线观看| 大色综合视频网站在线播放| 欧美日韩不卡合集视频| 亚洲一区二区天堂| 91理论电影在线观看| 人人妻人人澡人人爽欧美一区| 成人国产激情| 亚洲图片在线综合| 影音先锋亚洲天堂| www.久久精品|