国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

redis使用中存在的問題及如何避免(二)

wfc_666 / 1712人閱讀

摘要:使用中存在的問題及如何避免一闡述了的阻塞問題及緩存穿透問題,本文將繼續總結在使用中的問題及方案。更多的節點不代表更高的性能,這就是無底洞問題。可使用漏桶令牌桶等方式進行限流操作,將流量擋在應用上層。

redis使用中存在的問題及如何避免(一)闡述了redis的阻塞問題及緩存穿透問題,本文將繼續總結redis在使用中的問題及方案。

無底洞問題
隨著數據量和訪問量的增長,需要增加更多的節點做水平擴容,鍵值會分布到更多的節點上,若客戶端進行批量操作則通常會從不同的節點上獲取數據,相比于單機批量操作只涉及一次網絡操作,分布式批量操作會涉及多次網絡交互。
隨著節點數的增多,客戶端一次批量操作涉及的網絡交互耗時也會不斷增大;網絡連接數增多,對節點性能也有一定影響。
更多的節點不代表更高的性能,這就是無底洞問題。

雪崩問題
由于緩存層承載著大量請求,有效的保護了存儲層,但如果緩存層由于某些原因不能提供服務,所有請求都會壓到存儲層,存儲層流量暴增,導致存儲層也會級聯宕機。

保證緩存層服務高可用性
Redis Sentinel或者Redis Cluster都實現了高可用

隔離限流降級
對重要的資源Redis、Mysql、外部接口調用都進行隔離,機器、進程、線程等層面都可做隔離。
可使用漏桶、令牌桶等方式進行限流操作,將流量擋在應用上層。
對出現問題的數據或功能做降級處理,友好的展示給用戶。

提前演練測試

熱點key重建優化
緩存+過期時間策略即可以加速數據讀寫,又保證數據的定期更新,若出現如下兩個問題,可能會對應用產生致命危害:

當前key是一個熱點key,并發量非常大

重建緩存不能在短時間內完成,如:復雜的sql、多次IO、多個依賴等。
在緩存失效的瞬間,有大量的線程來創建緩存,造成后端負載加大,甚至導致系統崩潰。
方案:

a.互斥鎖
  只允許有一個線程去重建數據,其他線程等待構建完緩存,重新從緩存中獲取數據。
b.永遠不過期
  設置邏輯過期時間,判斷邏輯時間和當前時間大小,然后異步去構建數據覆蓋老數據。
  
a方案思路簡單,能保證一致性;但代碼復雜度增大,存在死鎖風險,存在線程池阻塞風險。
b方案基本可以杜絕熱點key問題;但不保證一致性,邏輯過期時間增加代碼維護成本。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61972.html

相關文章

  • redis使用存在問題如何避免(一)

    摘要:給我們帶來便利的同時,使用過程中會存在什么問題呢,本文將簡單加以總結。避免使用內存過大的實例。如果主線程距離上一次的成功超過,為了數據安全會阻塞直到后臺線程執行完完成。 redis可以滿足很多的應用場景,而且因為將所有數據都放到內存中,所以它的讀寫性能很好,很多公司都在使用redis。redis給我們帶來便利的同時,使用過程中會存在什么問題呢,本文將簡單加以總結。 阻塞問題 r...

    jackzou 評論0 收藏0

發表評論

0條評論

wfc_666

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<