真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Redis緩存穿透是什么

redis緩存穿透是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供江干企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為江干眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

一、緩存穿透(擊穿)

原理:緩存穿透(擊穿)是指查詢一個一定不存在的數(shù)據(jù),由于緩存是不命中時被動寫的,并且出于容錯考慮,如果從存儲層查不到數(shù)據(jù)則不寫入緩存,這將導(dǎo)致這個不存在的數(shù)據(jù)每次請求都要到存儲層去查詢,失去了緩存的意義。在流量大時,數(shù)據(jù)庫的壓力驟增(可能會宕機(jī))。

解決方法:

  1. 布隆過濾器

    對所有可能查詢的參數(shù)以hash形式存儲,在控制層先進(jìn)行校驗,不符合則丟棄。還有最常見的則是采用布隆過濾器,將所有可能存在的數(shù)據(jù)哈希到一個足夠大的bitmap中,一個一定不存在的數(shù)據(jù)會被這個bitmap攔截掉,從而避免了對底層存儲系統(tǒng)的查詢壓力。

2. 緩存空對象

如果一個查詢返回的數(shù)據(jù)為空(無論是數(shù)據(jù)不存在,還是系統(tǒng)故障),我們?nèi)匀话堰@個空結(jié)果進(jìn)行緩存,但它的過期時間會很短,最長不超過五分鐘。  

第一,空值做了緩存,意味著緩存層中存了更多的鍵,需要更多的內(nèi)存空間 ( 如果是攻擊,問題更嚴(yán)重 ),比較有效的方法是針對這類數(shù)據(jù)設(shè)置一個較短的過期時間(最長不超過五分鐘),讓其自動剔除。

第二,緩存層和存儲層的數(shù)據(jù)會有一段時間窗口的不一致,可能會對業(yè)務(wù)有一定影響。例如過期時間設(shè)置為 5分鐘,如果此時存儲層添加了這個數(shù)據(jù),那此段時間就會出現(xiàn)緩存層和存儲層數(shù)據(jù)的不一致,此時可以利用消息系統(tǒng)或者其他方式清除掉緩存層中的空對象。

二、緩存雪崩

  原理:緩存雪崩是緩存時集中在某一時段同時失效,請求全部轉(zhuǎn)發(fā)到數(shù)據(jù)庫,數(shù)據(jù)庫瞬時壓力過重導(dǎo)致雪崩效應(yīng)。

解決方法:  

1. 加鎖排隊

     在緩存失效后,通過加鎖或者隊列來控制讀數(shù)據(jù)庫寫緩存的線程數(shù)量。比如對某個key只允許一個線程查詢數(shù)據(jù)和寫緩存,其他線程等待。

 2. 緩存時間增加隨機(jī)值

在原有的失效時間基礎(chǔ)上增加一個隨機(jī)值,比如1-5分鐘隨機(jī),這樣每一個緩存的過期時間的重復(fù)率就會降低,就很難引發(fā)集體失效的事件。

三、緩存預(yù)熱

新的緩存系統(tǒng)沒有任何緩存數(shù)據(jù),在緩存重建數(shù)據(jù)的過程中,系統(tǒng)性能和數(shù)據(jù)庫負(fù)載都不太好,所以最好是在系統(tǒng)上線之前就把要緩存的熱點(diǎn)數(shù)據(jù)加載到緩存中,這種緩存預(yù)加載手段就是緩存預(yù)熱。

四、緩存熱備

緩存熱備即當(dāng)一臺緩存服務(wù)器不可用時能實時切換到備用緩存服務(wù)器,不影響緩存使用。集群模式下,每個主節(jié)點(diǎn)都會有一個或多個從節(jié)點(diǎn)來當(dāng)備用,一旦主節(jié)點(diǎn)掛點(diǎn),從節(jié)點(diǎn)立即充當(dāng)主節(jié)點(diǎn)使用。

看完上述內(nèi)容,你們掌握Redis緩存穿透是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


新聞名稱:Redis緩存穿透是什么
當(dāng)前鏈接:http://weahome.cn/article/pojcji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部