日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

面試提問:Redis熱點key問題如何解決?

 

面試官提問

  • redis熱點key如何解決?
  • 100萬請求同時從Redis讀取相同key,如何優化?
  • 明星有熱點新聞,如何從Redis讀取熱點新聞的相關數據?

Redis熱點key問題是什么

商品大促(比如阿里雙11)、熱點新聞(比如微博xx明星塌房),都很可能會訪問同一個Redis key,導致出現Redis熱點,所有的流量都打向同一臺服務器,占滿物理帶寬然后崩潰。一旦Redis崩潰,就會去訪問更慢的存儲比如數據庫,從而產生嚴重的雪崩。

如何解決Redis熱點key問題?

1、發現熱點key

(1)業務預先判斷。比如秒殺商品一定是熱點key。

(2)客戶端自動判斷。自定義客戶端SDK,然后上傳監控數據到實時分析平臺,再通過一些廣播組件比如etcd、zookeeper、kafka等廣播給所有的節點。

(3)服務端自動判斷。服務端根據請求信息,自動判斷熱點。

2、處理熱點key

(1)方式

基本上都是在做多級緩存。也就是除了Redis緩存,本地也增加幾層緩存。常見的就是Guava-Cache做本地緩存。

(2)考慮的問題

怎么保證本地緩存一致性?當value發生變化時,首先變化的那臺服務器一定是強一致性的,可以立刻invalid本地緩存。修改Redis的緩存后,一般會有廣播,廣播給所有的服務器,讓他們檢查本地緩存是否有這個熱點key,然后invalid本地緩存,保證最終一致性。

怎么保證正常業務不受影響?劃分專門的熱點區域(比如阿里Tair,有贊TMC)熱點區域的所有帶寬、存儲都是獨立的,和普通緩存區域劃分開。然后通過返回的數據熱點標記,讓客戶端下次訪問時去訪問熱點區域而非普通區域。并且當熱點區域緩存失效后,去普通區域拿數據,如果數據仍然很熱,那么還是把數據會繼續異步存入熱點區域。

怎么保證最小侵入性?一般會集成專用的sdk,把侵入性代碼都封裝起來,然后底層框架會用Jedis,來兼容業務的其他Redis訪問。

為什么SDK封裝,都很少用lettuce、redisson?因為jedis更接近底層,而且更穩定,容易封裝。

結束語

能看到這里的你,一定是個熱愛編程的同學。如果想要有計劃地準備大廠面試,歡迎關注。

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定