1. 程式人生 > >深度解析雙十一背後的阿里雲 Redis 服務

深度解析雙十一背後的阿里雲 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服務。


原文連結
本文為雲棲社群原創內容,未經允許不得轉載。