快取三大問題再總結

2021-10-04 21:30:20 字數 562 閱讀 6659

快取三大問題再總結

1、快取穿透

定義:快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時需要從資料庫查詢,查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到資料庫去查詢,進而給db帶來壓力。

解決:方案一:快取空資料

優點:**簡單

缺點:效果不好

1)第一次查詢需要查庫

2)如果換另外乙個key,就需要再處理

3)快取中會有大量key對應空值

方案二:布隆過濾器

優點:效果好

缺點:維護複雜

2、快取擊穿

定義:快取擊穿是指熱點key在某個時間點過期的時候,而恰好在這個時間點對這個key有大量的併發請求過來,從而大量的請求打到db。

解決方案:分散過期時間,避免快取失效時間集中在同一時間

3、快取雪崩

定義:快取雪崩是指快取中資料大批量到過期時間,而查詢資料量巨大,引起資料庫壓力過大甚至down機。

解決方案

方案一:搭建高可用的集群環境

方案二:避免快取失效時間集中在同一時間

方案三:熔斷、限流

快取常見三大問題

之前常聽人說,但是沒有仔細想過這些問題。最近看 可伸縮服務架構 架構與中介軟體 中這些問題解釋的很好,也給出了一般解決方案,記錄一下。快取穿透 快取併發 快取雪崩常見的由於併發量大而導致。說明 快取穿透指的是使用不存在的key進行大量的高併發查詢,這導致快取無法命中,每次請求都要穿透到後端資料庫系統...

如何應對快取三大問題

快取擊穿 首先我們來看下請求是如何取到資料的 當接收到使用者請求,首先先嘗試從redis快取中獲取到資料,如果快取中能取到資料則直接返回結果,當快取中不存在資料時從db獲取資料,如果資料庫成功取到資料,則更新redis,然後返回資料 定義 高併發的情況下,某個熱門key突然過期,導致大量請求在red...

Redis快取三大問題解析

通俗來講,快取粒度問題就是我們在使用快取時,是將所有資料快取還是快取部分資料?快取粒度問題是乙個容易被忽視的問題,如果使用不當,可能會造成很多無用空間的浪費,可能會造成網路頻寬的浪費,可能會造成 通用性較差等情況,必須學會綜合資料通用性 空間占用比 維護性 三點評估取捨因素權衡使用。快取穿透是指查詢...