23. redis總結:1T以上海量數據+10萬以上QPS高併發+99.99%高可用

redis作用

topic:高併發、億級流量、高性能、海量數據的場景,電商網站的商品詳情頁系統的緩存架構

商品詳情頁系統,大型電商網站,會有很多部分組成,但是支撐高併發、億級流量的,主要就是其中的大型的緩存架構

在這個大型的緩存架構中,redis是最最基礎的一層

高併發,緩存架構中除了redis,還有其他的組成部分,但是redis至關重要

大量的離散請求,隨機請求,各種你未知的用戶過來的請求,上千萬用戶過來訪問,每個用戶訪問10次; 集中式的請求,1個用戶過來,一天訪問1億次

支撐商品展示的最重要的,就是redis cluster,去抗住每天上億的請求流量,支撐高併發的訪問

redis cluster在整個緩存架構中,如何跟其他幾個部分搭配起來組成一個大型的緩存系統,後面再講

redis高可用

redis的每個特點,要解決的問題是什麼???

redis:持久化、複製(主從架構)、哨兵(高可用,主備切換)、redis cluster(海量數據+橫向擴容+高可用/主備切換)

  1. 持久化:高可用的一部分,在發生redis集羣災難的情況下(比如說部分master+slave全部死掉了),如何快速進行數據恢復,快速實現服務可用,才能實現整個系統的高可用

  2. 複製:主從架構,master -> slave 複製,讀寫分離的架構,寫master,讀slave,橫向擴容slave支撐更高的讀吞吐,讀高併發,10萬,20萬,30萬,上百萬,QPS,橫向擴容

  3. 哨兵:高可用,主從架構,在master故障的時候,快速將slave切換成master,實現快速的災難恢復,實現高可用性

  4. redis cluster:多master讀寫,數據分佈式的存儲,橫向擴容,水平擴容,快速支撐高達的數據量+更高的讀寫QPS,自動進行master -> slave的主備切換,高可用

  5. 總結:讓底層的緩存系統,redis,實現能夠任意水平擴容,支撐海量數據(1T+,幾十T,1個node10G * 600個node==6T),支撐很高的讀寫QPS(redis單機在幾萬QPS,10臺,幾十萬QPS),高可用性(每個redis實例都做好AOF+RDB的備份策略+容災策略,slave -> master主備切換)

是緩存架構支撐:1T+海量數據10萬+讀寫QPS99.99%高可用性

redis的第一套企業級的架構

  1. 如果你的數據量不大,單master就可以容納,一般來說你的緩存的總量在10G以內就可以,那麼建議按照以下架構去部署redis:

  2. 方案:redis持久化+備份方案+容災方案+replication(主從+讀寫分離)+sentinal(哨兵集羣,3個節點,高可用性)

  3. 可以支撐的數據量在10G以內,可以支撐的寫QPS在幾萬左右,可以支撐的讀QPS可以上10萬以上(隨你的需求,水平擴容slave節點就可以),可用性在99.99%

redis的第二套企業級架構

  1. 如果你的數據量很大,大型電商網站的商品詳情頁的架構(對標那些國內排名前三的大電商網站,*寶,*東,*寧易購),能支撐海量數據,redis cluster

  2. 方案:多master分佈式存儲數據,水平擴容

  3. 支撐更多的數據量,1T+以上沒問題,只要擴容master即可

讀寫QPS分別都達到幾十萬都沒問題,只要擴容master即可,redis cluster,讀寫分離,支持不太好,readonly才能去slave上讀

  1. 支撐99.99%可用性,也沒問題,slave -> master的主備切換,冗餘slave去進一步提升可用性的方案(每個master掛一個slave,但是整個集羣再加個3個slave冗餘一下)

後續的業務系統的開發,主要是基於redis cluster去做

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章