快取穿透 快取雪崩 快取擊穿及解決方案

2021-10-05 12:09:36 字數 886 閱讀 8070

快取穿透

查詢的資料在快取伺服器(redis)中沒有,就繞過快取伺服器 直接與資料庫進行io互動,對伺服器造成巨大壓力

解決方案: 查詢資料在redis如果沒有,就將該資料設定為null放在redis中  防止暴力攻擊

或者使用布隆過濾器

本質上布隆過濾器是一種資料結構,比較巧妙的概率型資料結構(probabilistic data structure),特點是高效地插入和查詢,可以用來告訴你 「某樣東西一定不存在或者可能存在」。

相比於傳統的 list、set、map 等資料結構,它更高效、占用空間更少,但是缺點是其返回的結果是概率性的,而不是確切的。

快取雪崩

快取雪崩是指快取中大量的資料到期,而查詢資料巨大 造成資料庫壓力過大甚至宕機

快取雪崩是很多資料因為過期了所以查不到 因此去向資料庫查

解決方法: 物品分類 採用隨機因子 使大量資料不會同一時間過期,讓資料過期錯開來

快取擊穿

快取擊穿 是 指「爆款」  快取中沒有該資料資料庫中有該資料(或者說在快取中剛過期)    大量併發使用者去資料庫進行互動,造成資料庫壓力過大。

解決方案:     1、設定熱點資料永不過期

2、加互斥鎖

快取穿透 快取擊穿 快取雪崩

一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...

快取穿透,快取擊穿,快取雪崩

所謂的快取穿透,簡單來講就是查詢某些不存在的key時,快取和資料庫查詢結果都為空,而空的結果又不被快取起來,而導致每次查詢都去請求資料庫層的情況。在流量大時,可能db就掛掉了,要是有人利用不存在的key頻繁攻擊我們的應用,這就是漏洞。過程 快取不命中,進而導致每次查詢都去查詢資料庫,快取也就失去了作...

快取穿透快取擊穿快取雪崩

1 快取穿透 1.1 什麼是快取穿透 快取穿透,是指查詢乙個資料庫一定不存在的資料 核心 快取和資料庫該值不存在 正常的使用快取流程大致是,資料查詢先進行快取查詢,如果key不存在或者key已經過期,再對資料庫進行查詢,並把查詢到的物件,放進快取。如果資料庫查詢物件為空,則不放進快取。1.2 帶來的...