緩存雪崩
緩存的雪崩是指在在高併發的情況下,用戶查詢數據但其緩存中設置了相同的過期時間,造成key集中失效,一起直接查詢數據庫,造成數據庫無法承受如此高的併發量產生死機的情況。
結局方法:
1.通過對代碼塊進行加鎖的方式進行同步查詢(個人見解)
2.對不同的key使用不同的過期時間
緩存擊穿
緩存的擊穿是指在查詢時,在rides中的某一個key非常火熱,大量的用戶查詢它,在某一個時刻,這個key失效,造成大量的請求直接去查詢數據庫·,造成數據庫崩掉。
結局方法:
1.可以使用二級緩存,一級緩存和二級緩存設置不同的過期時間,優先訪問一級緩存,當一級緩存失效時,使用二級緩存
緩存穿透
緩存穿透是指查詢一個一定沒有的數據,過程爲查詢數據時先從緩存中查詢數據沒有,查詢數據庫,查詢不到不放入緩存,導致每次查詢這個數據時都需要去查詢數據庫,造成緩存穿透。
結局方法:
1.採用一個布隆過濾器。
2.把查詢爲空的數據也進行緩存。