精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美日韩精品不卡| 欧美性xxxxxxxxx| 92福利视频午夜1000合集在线观看 | 国产欧美日韩一区| 国内自拍视频在线播放| 日韩免费在线| 欧美精品一区二区三区很污很色的| 国产极品尤物在线| a黄色在线观看| 丁香另类激情小说| 国产精品成人国产乱一区| √天堂中文官网8在线| 色综合久久中文| 亚洲日本网址| 一区二区视频网站| 国产伦精品免费视频| 99re精彩视频| 123区在线| 国产精品久久久一区麻豆最新章节| 波多野结衣精品久久| 亚洲精品男人的天堂| 亚洲香蕉av| 亚洲欧美日韩精品| 亚洲综合中文网| 日本一区二区电影| 欧美三级xxx| 99久久久无码国产精品性色戒| 日韩二区三区| 成人一级视频在线观看| 国产欧美日韩高清| 国产精品第5页| 亚洲人成高清| 欧美激情手机在线视频| 男女全黄做爰文章| 视频精品在线观看| 亚洲国产精彩中文乱码av| 第一区免费在线观看| 成人美女视频| 婷婷夜色潮精品综合在线| 成人手机视频在线| av播放在线| 久久久精品2019中文字幕之3| 国产精品99久久久久久久| 国产精品无码免费播放 | 久久国产视频网站| 日韩av片在线免费观看| 自拍偷拍精品| 亚洲精品视频网上网址在线观看| 无码成人精品区在线观看| 久久三级中文| 日韩欧美高清在线| 日批视频在线看| 91麻豆精品国产综合久久久 | 色婷婷狠狠综合| 每日在线更新av| av伦理在线| 亚洲成在人线免费| 亚洲小视频在线播放| 精品美女在线观看视频在线观看 | 国产成人免费视| 91中文字精品一区二区| 亚洲黄色小说网| 成人午夜大片免费观看| 国产免费高清一区| 五十路在线视频| 91在线国产观看| 久久久久久99| 人成在线免费视频| 国产午夜精品一区二区| 日本一区视频在线观看| eeuss影院www在线播放| 国产精品毛片高清在线完整版| 久久综合九色99| 精品电影在线| 中文字幕日本不卡| 欧美另类videosbestsex日本| 日韩电影免费观看| 亚洲第一狼人社区| 人妻有码中文字幕| 久久av影院| 欧美一级久久久| av电影在线播放| 国产探花一区| xx视频.9999.com| 国产在线观看成人| 久久精品毛片| 成人在线国产精品| 天堂网在线资源| 国产日产欧美一区| www.-级毛片线天内射视视| 日本一本在线免费福利| 欧美日韩亚洲一区二区| 亚洲一级片网站| 一区二区亚洲视频| 精品伊人久久97| 亚洲欧洲综合网| 影音先锋一区| 国产精品美女主播在线观看纯欲| 国产成人精品一区二区无码呦| 99re热视频精品| 中文字幕一区二区三区有限公司 | 欧美日韩一区二区在线观看视频| 无码国产精品一区二区高潮| 亚洲动漫精品| 欧美超级乱淫片喷水| 欧美精品亚洲精品日韩精品| 麻豆精品一区二区三区| 国产99视频精品免费视频36| 国产黄色片在线播放| 伊人婷婷欧美激情| 亚洲欧美另类动漫| 国产精品qvod| 日韩中文字幕在线观看| 国产性生活网站| 久久电影网电视剧免费观看| 乱色588欧美| 婷婷色在线资源| 欧美日韩中文一区| 最新在线黄色网址| 欧美一区二区三区另类| 国产精品第1页| 五月天激情开心网| 亚洲精品国产视频| 国产三级国产精品国产专区50| 欧美福利在线播放网址导航| 久久国产天堂福利天堂| 中文文字幕一区二区三三| caoporn国产一区二区| 日本一级淫片演员| 成人在线高清| 精品一区二区亚洲| 天天做天天爱夜夜爽| 丁香激情综合国产| 国产一区二区三区播放| 欧美性aaa| 国产亚洲成av人片在线观看桃| 国产一国产二国产三| 国产精品亚洲成人| 影音先锋男人的网站| av日韩亚洲| 日韩av在线免费观看| 国产亚洲色婷婷久久99精品| 国内久久婷婷综合| 亚洲在线视频一区二区| 日本成人福利| 亚洲性猛交xxxxwww| 久草视频一区二区| 久久欧美一区二区| 欧美性大战久久久久xxx| 牛牛精品成人免费视频| 久久久久久久久久久网站| 国产99视频在线| 亚洲精品国产第一综合99久久 | 国产精品自在欧美一区| 日本特级黄色大片| 国产精品国产三级在线观看| www亚洲欧美| 国产精品久久免费| 亚洲三级理论片| 国产精品自在自线| 久久久久久免费视频| 91夜夜揉人人捏人人添红杏| 国产在线高潮| 日韩精品一区二区三区视频播放 | 91精品国产色综合久久ai换脸| 国产三级aaa| 国产一区二区三区香蕉| 欧美一级特黄aaaaaa在线看片| 精品国产乱码一区二区三区| 久久成人精品电影| 精品欧美在线观看| 欧美日韩美女在线观看| 中文字幕一区二区人妻在线不卡| 天堂va蜜桃一区二区三区| 日本一区二区三区四区高清视频| 日韩中文视频| 久久精品国产一区二区电影| 99在线无码精品入口| 亚洲成人午夜电影| 欧美成人午夜精品免费| 看片的网站亚洲| 免费的一级黄色片| 最新国产精品视频| 国产区亚洲区欧美区| 69xxx在线| 亚洲精品av在线| 久久久久精彩视频| 亚洲激情欧美激情| 欧美肉大捧一进一出免费视频| 免费国产自线拍一欧美视频| 亚洲一卡二卡三卡| 中文字幕一区二区三区中文字幕 | 中文字幕精品影院| 国产日韩欧美成人| 国产精品论坛| 精品国产拍在线观看| 黑人乱码一区二区三区av| 欧美性猛交xxxxx免费看| 狂野欧美性猛交| 波多野结衣中文字幕一区二区三区| 男人舔女人下面高潮视频| 国产精品麻豆久久| 久久综合久久久| 国产精品亚洲欧美一级在线 | 欧美特黄aaaaaa| 亚洲色图视频网站| 香蕉视频久久久| 成人自拍视频在线| 五月婷婷六月合| 国产欧美另类| 日韩video| 成人同人动漫免费观看| 国产亚洲自拍偷拍| 精品国产欧美| 国产精品看片资源| 小草在线视频免费播放| 免费99精品国产自在在线| 国产女主播在线直播| 亚洲成人亚洲激情| 国产乱码久久久久| 91国内精品野花午夜精品| 国产主播在线观看| 亚洲美女免费视频| 国产一级淫片久久久片a级| 99久久精品国产导航| 麻豆精品国产传媒| 免费成人av资源网| 男人揉女人奶房视频60分| 欧美网站在线| 色哺乳xxxxhd奶水米仓惠香| 日韩影院二区| 日韩欧美亚洲在线| 久久综合影院| 久久伊人资源站| 男人的天堂久久| 国产精品视频一区二区三区经| 精品国产亚洲一区二区三区大结局| 国产成人精品免高潮在线观看| 免费高潮视频95在线观看网站| 欧美大片欧美激情性色a∨久久| 日本中文字幕电影在线免费观看| 亚洲午夜女主播在线直播| 同心难改在线观看| 亚洲精品国产精品国自产观看浪潮 | 亚洲激情av| 另类小说综合网| 成人激情五月天| 美女视频黄久久| 国产真实乱子伦| 亚洲欧美春色| av免费中文字幕| 美女久久网站| 熟女人妇 成熟妇女系列视频| 亚洲永久免费| 免费av网址在线| 久久久久久久高潮| 99视频免费播放| 秋霞电影网一区二区| 欧美视频在线播放一区| 欧美体内she精视频在线观看| 成人在线视频一区二区三区| 黑人一区二区三区四区五区| 日韩精品一区二区免费| 日韩天堂av| 国产a视频免费观看| 日本欧美一区二区| av中文字幕网址| 国产.精品.日韩.另类.中文.在线.播放| 男男受被啪到高潮自述| 国产成人一区在线| 人妻激情偷乱频一区二区三区| 成人免费的视频| 加勒比一区二区| 欧美激情一区二区| 国产激情无码一区二区三区| 亚洲一区二区在线观看视频| 日韩欧美激情视频| 色综合久久天天综合网| 乱子伦一区二区三区| 欧美二区三区的天堂| 精品国产无码一区二区三区| 精品国产污网站| 可以在线观看的av| 久久精品影视伊人网| 国产精品探花在线| 国产成人精品在线播放| 亚洲香蕉久久| 国产一级精品aaaaa看| 国产日产一区| 国产亚洲精品久久久久久久| 亚洲激情av| av中文字幕网址| 91在线观看免费视频| 黑人狂躁日本娇小| 亚洲成av人片在线观看无码| 波多野结衣电车| 欧美一二三区在线观看| 瑟瑟在线观看| 欧美精品亚州精品| 波多野结衣乳巨码无在线观看| 国产精品扒开腿做爽爽爽的视频| 秋霞一区二区三区| 日本免费高清一区| 亚洲手机视频| 色www免费视频| 99精品在线观看视频| 人人澡人人澡人人看| 一本色道久久综合亚洲精品按摩| 97人妻精品一区二区三区动漫| 亚洲激情电影中文字幕| 麻豆传媒在线免费| 国产98色在线| 99热这里只有精品首页| 五月天亚洲综合情| 国产情侣久久| 日本成人在线免费| 国产精品视频一二三区| 国产精品午夜影院| 日韩一区二区高清| 在线观看精品一区二区三区| 91精品国产91久久久久久最新 | 色哟哟在线观看一区二区三区| 午夜精品久久久久久久爽| 尤物九九久久国产精品的分类 | 日本三级日本三级日本三级极| 国产精品电影一区二区三区| 免费一级全黄少妇性色生活片| 欧美日韩一级片网站| 青青草手机在线| 97久久久久久| 国产精品2023| www.欧美黄色| 国产精品123| www.99re7| 欧美日本在线播放| 91欧美在线视频| 国产精品久久久久久久7电影| 四虎影视精品| 18岁网站在线观看| av在线不卡观看免费观看| 妺妺窝人体色www聚色窝仙踪| 欧美一级专区免费大片| 嫩草香蕉在线91一二三区| 国产精品高潮粉嫩av| 国产探花一区| 五月婷婷丁香综合网| 国产欧美日韩一区二区三区在线观看| 日本午夜视频在线观看| 日韩理论片久久| 精品91久久| 欧美日韩在线一二三| 美女精品在线| 日本一二三不卡视频| 欧美午夜不卡视频| 91精彩视频在线观看| 国产美女扒开尿口久久久| 欧美成免费一区二区视频| 国产aⅴ爽av久久久久| 亚洲丝袜精品丝袜在线| 国产黄色一级大片| 欧美区二区三区| 久久动漫网址| 成熟老妇女视频| 国产精品三级视频| 99久久婷婷国产一区二区三区| 九九九久久久久久| 精品淫伦v久久水蜜桃| 日本日本19xxxⅹhd乱影响| 国产亚洲综合性久久久影院| 做爰无遮挡三级| 久久久999精品视频| 麻豆一二三区精品蜜桃| 国产 日韩 欧美在线| 26uuu色噜噜精品一区二区| 高潮毛片又色又爽免费| 日韩在线小视频| 精品国产一区二区三区成人影院| 免费在线激情视频| 国产精品萝li| 亚洲国产精品suv| 欧美专区在线观看| 国产欧美日韩免费观看| 不卡中文字幕av| 国产一区二区视频免费| 亚洲电影免费观看高清完整版在线| 在线视频超级| 亚洲一区二区在线看| 国产精品伊人色| 国产成人无码精品亚洲| 一区二区三区在线播放欧美| 精品人妻在线视频| 亚洲欧洲成人精品av97| 亚洲国产精品久久久久久6q| 97色在线视频| 水蜜桃久久夜色精品一区| 无码人妻一区二区三区精品视频| 色哟哟精品一区| 毛片在线网址| 日韩福利影院| 成人av片在线观看|