快取穿透和快取雪崩

2021-10-12 10:18:50 字數 421 閱讀 5994

也可以叫redis穿透和redis雪崩。

redis是支援key-value等多種資料結構的儲存系統,常用於快取。

使用者進行查詢,發現redis記憶體資料庫中沒有資料,也就是快取沒有命中,就回去持久化層資料庫中進行查詢,發現也沒有,此次查詢失敗。當使用者過多,快取都沒有命中,每個都去持久化層資料庫中查詢。就會給持久層資料庫造成壓力,這時候就相當於出現了快取穿透。

去資料庫中查詢時,沒有查詢到,也要建立空資料快取。避免每次從資料庫中查詢為空也依舊去資料庫中進行查詢。

大量的key同一時間失效,同時又有請求打進來,導致流量直接打在資料庫上。

a.設定key永不失效

b.盡量避免key在同一時間失效

c.可以設定多級快取機制,同時使用redis和memcache進行快取

d.購買第三方可靠性比較高的redis雲伺服器

快取雪崩和快取穿透

快取雪崩可能是因為資料未載入到快取中,或者快取同一時間大面積的失效,從而導致所有請求都去查資料庫,導致資料庫cpu和記憶體負載過高,甚至宕機。解決思路 1,採用加鎖計數,或者使用合理的佇列數量來避免快取失效時對資料庫造成太大的壓力。這種辦法雖然能緩解資料庫的壓力,但是同時又降低了系統的吞吐量。2,分...

快取穿透和快取雪崩

一 快取穿透 查詢乙個 必然不存在的資料,首先通過key到快取去查詢,不存在,然後到達db,這樣會對後台的db造成很大的壓力,這樣每次都會請求到達資料庫,這就是快取穿透 快取失效 如果快取集中在一段時間內失效,db的壓力凸顯 快取穿透避免的方法 1 最簡單粗暴的方法 如果在資料庫中查詢的也為null...

快取穿透和快取雪崩

快取穿透 一般的快取系統的查詢方式都是以key去查詢value,一些不存在對應的value就會去後台系統當中去尋找,一些惡意的請求對資料庫造成巨大的壓力就稱之為快取穿透。快取雪崩 當快取伺服器存在的大量的資料在集中一段時間內失效,這樣失效時會造成後台系統巨大的壓力稱之為快取雪崩。快取擊穿 是指乙個k...