緩存穿透:比如說乎串,一個用戶的基本信息(緩存key為uid)或訂單的信息(緩存key為order_id)店枣,緩存或數(shù)據(jù)庫里都沒有這個uid或order_id的信息,但是如果有請求要獲取這個信息叹誉,那么邏輯處理時就會跨過緩存這一層去查數(shù)據(jù)庫鸯两,如果這樣的請求短時間內(nèi)非常多可能會壓垮數(shù)據(jù)庫。
緩存擊穿:比如說长豁,訂單的信息(緩存key為order_id)在緩存中有過期時間钧唐,如果在特定的時間這個訂單信息在緩存中已經(jīng)過期但是尚未從數(shù)據(jù)庫查出最新的信息set到緩存上,恰好這個時候大并發(fā)請求過來了匠襟,那么這些請求的邏輯處理也會跨過緩存直接查詢數(shù)據(jù)庫钝侠,這個大并發(fā)的查詢可能會壓垮數(shù)據(jù)庫。
緩存雪崩:上面說到緩存擊穿是一個key在特定時間過期酸舍,那么如果緩存系統(tǒng)中大量的緩存在同一時間或時間段內(nèi)過期帅韧,這個時候的請求也會跨過緩存直達數(shù)據(jù)庫,數(shù)據(jù)庫壓力陡增也可能會壓垮數(shù)據(jù)庫啃勉。