快取三大問題再總結
1、快取穿透
定義:快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時需要從資料庫查詢,查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到資料庫去查詢,進而給db帶來壓力。
解決:方案一:快取空資料
優點:**簡單
缺點:效果不好
1)第一次查詢需要查庫
2)如果換另外乙個key,就需要再處理
3)快取中會有大量key對應空值
方案二:布隆過濾器
優點:效果好
缺點:維護複雜
2、快取擊穿
定義:快取擊穿是指熱點key在某個時間點過期的時候,而恰好在這個時間點對這個key有大量的併發請求過來,從而大量的請求打到db。
解決方案:分散過期時間,避免快取失效時間集中在同一時間
3、快取雪崩
定義:快取雪崩是指快取中資料大批量到過期時間,而查詢資料量巨大,引起資料庫壓力過大甚至down機。
解決方案
方案一:搭建高可用的集群環境
方案二:避免快取失效時間集中在同一時間
方案三:熔斷、限流
快取常見三大問題
之前常聽人說,但是沒有仔細想過這些問題。最近看 可伸縮服務架構 架構與中介軟體 中這些問題解釋的很好,也給出了一般解決方案,記錄一下。快取穿透 快取併發 快取雪崩常見的由於併發量大而導致。說明 快取穿透指的是使用不存在的key進行大量的高併發查詢,這導致快取無法命中,每次請求都要穿透到後端資料庫系統...
如何應對快取三大問題
快取擊穿 首先我們來看下請求是如何取到資料的 當接收到使用者請求,首先先嘗試從redis快取中獲取到資料,如果快取中能取到資料則直接返回結果,當快取中不存在資料時從db獲取資料,如果資料庫成功取到資料,則更新redis,然後返回資料 定義 高併發的情況下,某個熱門key突然過期,導致大量請求在red...
Redis快取三大問題解析
通俗來講,快取粒度問題就是我們在使用快取時,是將所有資料快取還是快取部分資料?快取粒度問題是乙個容易被忽視的問題,如果使用不當,可能會造成很多無用空間的浪費,可能會造成網路頻寬的浪費,可能會造成 通用性較差等情況,必須學會綜合資料通用性 空間占用比 維護性 三點評估取捨因素權衡使用。快取穿透是指查詢...