快取穿透 擊穿 雪崩區別和解決方案

2022-01-20 06:34:22 字數 569 閱讀 5693

1、快取穿透

概念說明:指 cache 和 db 中都沒有資料,讀完 cache 沒有,再讀 db 還是沒有,每次請求到 cache 和 db。

解決方法:

a).攔截非法請求,比如不正常的 id 請求直接拒絕。

b).沒有資料時也 cache 下,過期時間可設定短點,不把過多請求打到 db 去。

2、快取雪崩

概念說明:大量 cache 資料同時過期,導致大量請求打到 db。

解決方法:

a).熱點 key 永不過期,非同步更新。

b).防止同時大量資料過期,cache 過期時間隨機抖動下。

3、快取擊穿

概念說明:一般是少量熱點資料過期(比如微博熱搜),導致大量請求查 cache 沒有,又查 db。

解決方法:

a)熱點 key 永不過期,非同步更新。

b)更新熱點 key 時加鎖,同乙個 key 最好只有乙個請求打到 db。

c)介面限流,熔斷、降級。

快取穿透 快取擊穿 快取雪崩區別和解決方案

一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...

快取穿透 快取擊穿 快取雪崩區別和解決方案

一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...

快取穿透,快取擊穿,快取雪崩區別和解決方案

1.快取穿透 快取穿透是指查詢乙個一定不存在的資料。由於快取不命中,並且出於容錯考慮,如果從資料庫查不到資料則不寫入快取,這導致這個不存在的資料每次請求都要到資料庫去查詢,失去了快取的意義。請求的資料在快取大量不命中,導致請求走資料庫。快取穿透如果發生了,也可能把我們的資料庫搞垮,導致整個服務癱瘓!...