什麼是redis快取雪崩、快取穿透、快取擊穿
使用redis快取的目的
1、為了防止大量使用者查詢直接打到資料庫,將資料庫打掛;
2、提升查詢效率;
如果redis使用不當,會出現一些異常情況,如快取雪崩、快取穿透、快取擊穿。
快取雪崩
什麼是快取雪崩?
redis快取KV的時候,會指定快取失效時間。如果在同一時間對快取KV設定了相同的快取失效時間,則到失效時間的時候,請求在redis中已經查不到資料,進而直接請求資料庫,由於訪問資料庫請求突然爆發增長,可能打掛資料庫,進而導致其他系統的崩潰。快取集中失效的場景就是快取雪崩。
如何避免快取雪崩?
對快取失效時間加上隨機值,避免快取的集中失效。
快取穿透
什麼是快取穿透?
請求先從快取中找資料,但是快取中該KV不存在,就從資料庫中找,但是資料庫中也不存在。查詢資料庫中不存在的請求就是快取穿透。快取穿透一般是請求帶著非法引數,直接穿過快取訪問到資料庫。比如資料庫表的主鍵是從0自增的,但是攻擊者拿著主鍵-1來請求,快取中肯定不存在,請求就直接訪問到資料庫了。
如何避免快取穿透?
1、對請求做合法值校驗、許可權校驗等,讓不合法的請求在訪問資料庫前就被攔截。
2、使用布隆過濾器,布隆過濾器可以判斷key是否在資料庫中存在,如果不存在就直接返回。
快取擊穿
什麼是快取擊穿?
快取擊穿和快取雪崩有點像,但是又不完全一致。快取擊穿主要是關於熱點KV的問題。請求不斷訪問到熱點KV上,如果快取的熱點KV突然失效,大量請求就瞬間訪問到資料庫上。
如何解決快取擊穿?
1、設定熱點資料永不過期;
2、請求快取後再請求資料庫前加鎖,在第一次訪問資料庫後再次將快取KV載入到redis中;
相關文章
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 快取穿透、快取擊穿、快取雪崩快取穿透
- 快取穿透、快取雪崩、快取擊穿快取穿透
- 面試官:快取穿透、快取雪崩和快取擊穿是什麼?面試快取穿透
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- 面試總結 —— Redis “快取穿透”、“快取擊穿”、“快取雪崩”面試Redis快取穿透
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- Redis 快取擊穿(失效)、快取穿透、快取雪崩怎麼解決?Redis快取穿透
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- 快取穿透、快取擊穿、快取雪崩區別快取穿透
- REDIS快取穿透,快取擊穿,快取雪崩原因+解決方案Redis快取穿透
- Redis的快取穿透、快取雪崩、快取擊穿的區別Redis快取穿透
- 【Redis】快取穿透,快取擊穿,快取雪崩及解決方案Redis快取穿透
- Redis快取穿透,擊穿和雪崩Redis快取穿透
- 怎麼學Redis 快取穿透、擊穿、雪崩Redis快取穿透
- Redis 快取雪崩,快取擊穿和快取穿透技術方案總結Redis快取穿透
- Redis 面試常見問題———快取雪崩、快取擊穿以及快取穿透Redis面試快取穿透
- 快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- Redis系列:快取擊穿.穿透.雪崩(九)Redis快取穿透
- 什麼是redis的快取雪崩與快取穿透Redis快取穿透
- 快取穿透、快取擊穿、快取雪崩概念及解決方案快取穿透
- 快取穿透、快取擊穿、快取雪崩區別和解決方案快取穿透
- 來說說快取穿透、快取擊穿、快取雪崩都是什麼?怎麼解決?快取穿透
- 關於快取穿透、快取擊穿、快取雪崩的模擬與解決(Redis)快取穿透Redis
- Redis快取穿透、快取雪崩、快取擊穿好好說說Redis快取穿透
- 十分鐘徹底掌握快取擊穿、快取穿透、快取雪崩快取穿透
- 快取穿透、快取擊穿、快取雪崩的場景以及解決方法快取穿透
- Redis快取雪崩、快取穿透、快取擊穿對比看這一篇就夠了Redis快取穿透
- Redis快取穿透/快取雪崩/快取擊穿(案例:產生的原因 解決方案利/弊)Redis快取穿透
- 一文徹底弄懂並解決Redis的快取雪崩,快取擊穿,快取穿透Redis快取穿透
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 快取穿透 快取雪崩快取穿透
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- 一文讀懂快取穿透、快取擊穿、快取雪崩及其解決方案快取穿透
- Redis系列 - 快取雪崩、擊穿、穿透及解決方案Redis快取穿透
- Redis快取穿透、擊穿、雪崩,資料庫與快取一致性Redis快取穿透資料庫