深度解析雙十一背後的阿里雲 Redis 服務

在一片歡呼之中,2018年的雙十一完美收官,各項數據不出意外的刷出了新的記錄,亮眼的數據背後是阿里過硬的技術支撐。其中阿里雲Redis不只保障了阿里集團內部業務雙十一的流量洪峯平穩度過,也讓使用阿里雲Redis的各個客戶度過了一個安穩省心的雙十一。
 
目前阿里雲Redis涵蓋了豐富的產品形態:主從、集羣、讀寫分離、同城容災、異地多活,能夠選擇單副本,雙副本,還有混合存儲類型。
  • 主從規格的Redis具備100%的兼容性;
  • 讀寫分離增長只讀節點承擔讀流量,成本最優;
  • 集羣規格大容量、高性能,突破單機性能極限,兼容redis cluster, sentinel等多種架構,上雲無憂;
  • 同城容災雙機房部署,整機房故障切換到正常機房;
  • 異地多活讓業務全球部署,就近寫入,自動全球實時同步。
此外,阿里雲Redis還擁有熱備份、帳號、安全等功能,知足業務的各項安全上的需求。本文將簡單介紹下2018年雙十一的部分業務場景。
 

直播

 
直播在雙十一期間也迎來流量高峯,觀看直播的用戶每發一條評論背後就會使用阿里雲的Redis的服務。直播平臺會對每條評論寫入兩條數據:索引和用戶評論,索引使用Redis的SortedSet數據結構對評論進行排序,而評論內容自己使用Hash存儲。獲取評論的時候,先讀索引,再訪問對應Hash拿到評論列表。評論的寫入過程以下:
 
f828c6c77203d58db6e4f5b14b73eee23c13dbd1
 
如今的直播必不可少的就是彈幕,和評論同樣,異常直播彈幕的寫入QPS可能很是高,而且用戶遍及全國各地甚至是分佈在全球的華人,一條在美國發出的彈幕跨洋寫進部署在國內,時延是不可接受的,物理距離的限制就算是低延遲的Redis也無能爲力,各個地域單獨部署一套存儲又會形成不一樣地域的用戶彈幕沒法相互看到。阿里雲Redis多活產品是爲這種場景而生,每一個地域部署一套Redis,用戶就近寫入,後端自動實時同步,跨洋的小夥伴感受再也不遙遠。
 
3d0cab3dc087b023c679536ee14490f7f7fef914
 

菜鳥訂單履行

 
雙11用戶在產生一個交易訂單以後會隨之產生一個物流訂單。通過菜鳥倉配系統處理的訂單,爲了讓倉配各個階段可以更加智能的協同做業,決策系統會根據訂單信息指定出對應的訂單履行計劃,包括何時下發倉、何時出庫、何時配送攬收、什麼 時候送達等信息,單據履行中心根據履行計劃,對每一個階段按照對應的時間去履行物流服務。因爲倉、配的運力有限,對於有限的運力下,指望最先做業的單據是業務認爲優先級最高的單據,因此訂單在真正下發給倉或者配以前,須要按照優先級進行排序。
訂單履行中心經過使用Redis來對全部的物流訂單進行排序決定哪一個訂單是最高優先級的。
 

ec946aa1d03c3e15784b7972e98d042681036fa1

 

微淘社區用戶關係鏈

 
微淘社區承載了億級淘寶用戶的社交關係鏈,對於每一個用戶都有本身的關注列表,每一個商家有本身的粉絲信息,整個微淘社區承載的關係鏈以下圖所示。
 
f828c6c77203d58db6e4f5b14b73eee23c13dbd1
 
Redis豐富的數據類型讓這種關係鏈的存儲變得簡單,高性能保證了雙十一期間業務仍如絲般順滑。好比微淘社區使用了Hash存儲用戶之間的關注信息,包括:1)用戶A是否關注過用戶B;2)用戶A/B的關係列表。
 

雙十一大屏

雙十一期間不光有出鏡率最高的媒體中心數據大屏,還有不少技術和業務模塊的監控數據大屏。這類大屏不只要求數據實時性高,對可靠性要求也很是高,一旦出現異常,經過大屏能夠快速展現出來。
  • 數據緩存
大屏匯聚了全部業務或者技術模塊的監控信息,具備來源廣、數據量大、實時性高的特色,Redis的高性能低延遲知足需求。大量數據經過pipeline批量更新,存入數據庫時使用update case when語句進行一次批量更新,效率很是高,大大緩解了數據庫的壓力。
  • 競爭鎖
大屏的高可用要求很是高,任何故障下大屏必須能夠正常展現。整個大屏背後須要雙機房甚至更多機房的部署,多個任務同時進行,基於Redis實現的競爭鎖來保證一個任務實際執行。
 

機房搬遷

 
雙十一以前阿里集團上海機房業務總體搬遷到張北機房,涉及數百Redis實例,同時遷移還須要知足幾個要求:
 
  1. 同時要求Redis服務的搬遷對業務透明,不影響業務的正常服務;
  2. 必須保證數據的一致性,不丟不重;
  3. 數據同步必須具有斷點續傳功能;
  4. 具有回滾方案,一旦業務切換出現問題,能夠隨時切換回來。
 
阿里雲Redis多活不只徹底知足了業務所提出的需求,還已經產品化和自動化,整個遷移過程用戶只須要在控制檯上點下鼠標便可完成,實例狀態,後端的數據同步狀態實時顯示在控制檯上。
 

結束

Redis是一個優秀的開源數據庫,提供了開發者更便利的數據模型,阿里雲Redis致力於提供穩定、高性能的Redis服務,歡迎廣大開發者使用阿里雲Redis服務。redis


原文連接
本文爲雲棲社區原創內容,未經容許不得轉載。數據庫

相關文章
相關標籤/搜索