搭建直播平臺,關(guān)于緩存的各種名詞概念理解
緩存細分下可以分緩存穿透、緩存擊穿、緩存雪崩三種,從這幾個詞上也能看出,這屬于搭建直播平臺緩存應(yīng)用的突發(fā)情況,一些情況下緩存的應(yīng)用并不能起到正向加速效果,反而會因為緩存的崩潰導(dǎo)致原本平臺該響應(yīng)的請求沒有響應(yīng)好,最終出現(xiàn)不應(yīng)該有的故障,搭建直播平臺面對緩存的問題處理該如何應(yīng)對呢?是否要因此放棄緩存的使用?
?

一、緩存穿透
在用戶想要查詢一個數(shù)據(jù)時,發(fā)現(xiàn)redis內(nèi)存數(shù)據(jù)庫沒有該數(shù)據(jù),也就是說緩存沒有命中,于是向持久層數(shù)據(jù)庫查詢,發(fā)現(xiàn)也沒有,宣告本次查詢失敗,盡管這次請求是失敗了,但還是給持久層數(shù)據(jù)造成了很大的壓力,這就被稱為緩存穿透。
解決方案:
布隆過濾器,屬于一個很長的二進制向量和一系列隨機映射函數(shù),它可以用于檢索一個元素是否在一個集合中,優(yōu)點在于保證了搭建直播平臺的空間效率和查詢時間都遠超過了一般的算法,缺點是有一定的誤識別率和刪除困難。
?

二、緩存擊穿
一個key熱點,可以保證搭建直播平臺很多用戶集中式的對這一個點進行訪問,但是如果key失效,就會導(dǎo)致持續(xù)性的大并發(fā)穿破緩存,直接導(dǎo)致請求了搭建直播平臺數(shù)據(jù)庫,這類請求往往都是熱點數(shù)據(jù),由于緩存過期,大量節(jié)點回來拉取新的緩存內(nèi)容,導(dǎo)致數(shù)據(jù)庫瞬間壓力變大。
解決方案:
1、設(shè)置熱點數(shù)據(jù)不過期,這樣能保證熱點key不會過期,不過也增加了搭建直播平臺消耗的資源
2、將熱點key備份到多個redis上,當(dāng)有熱點key請求來時,可以從備份中調(diào)取返回數(shù)據(jù)
?

三、緩存雪崩
指的是搭建直播平臺緩存由于某些原因整體或大量失效,導(dǎo)致大量請求回溯到后端數(shù)據(jù)庫中,從而導(dǎo)致數(shù)據(jù)庫的崩潰。不過這種情況很少見,一般出現(xiàn)在搭建直播平臺緩存服務(wù)器宕機、系統(tǒng)預(yù)加載緩存集中實效等。
解決方案:
1、增加緩存容量,直接增加緩存的空間
2、限流,在緩存實效后,通過加鎖或者隊列來控制讀數(shù)據(jù)庫寫緩存的線程數(shù)量
3、數(shù)據(jù)預(yù)熱,在正式部署之前,先把搭建直播平臺用戶可能會請求的數(shù)據(jù)預(yù)先訪問一遍,這樣用戶請求時不會出現(xiàn)大規(guī)模請求數(shù)量增加的情況
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任