redis 快取雪崩 穿透 降級 名詞解釋

2021-10-20 13:30:17 字數 792 閱讀 7320

快取預熱

快取降級

我們可以簡單的理解為:由於原有快取失效,新快取未到期間

(例如:我們設定快取時採用了相同的過期時間,在同一時刻出現大面積的快取過期),所有原本應該訪問快取的請求都去查詢資料庫了,而對資料庫cpu和記憶體造成巨大壓力,嚴重的會造成資料庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。

解決辦法:

快取穿透是指使用者查詢資料,在資料庫沒有,自然在快取中也不會有。這樣就導致使用者查詢的時候,在快取中找不到,每次都要去資料庫再查詢一遍,然後返回空(相當於進行了兩次無用的查詢)。這樣請求就繞過快取直接查資料庫,這也是經常提的快取命中率問題

解決辦法;

快取預熱這個應該是乙個比較常見的概念,相信很多小夥伴都應該可以很容易的理解,快取預熱就是系統上線後,將相關的快取資料直接載入到快取系統。這樣就可以避免在使用者請求的時候,先查詢數庫,然後再將資料快取的問題!使用者直接查詢事先被預熱的快取資料!

解決思路:

除了快取伺服器自帶的快取失效策略之外(redis預設的有6中策略可供選擇),我們還可以根據具體的

業務需求進行自定義的快取淘汰,常見的策略有兩種:

兩者各有優劣,第一種的缺點是維護大量快取的key是比較麻煩的,第二種的缺點就是每次使用者請求過來都要判斷快取失效,邏輯相對比較複雜!具體用哪種方案,大家可以根據自己的應用場景來權衡。

服務降級的目的,是為了防止redis服務故障,導致資料庫跟著一起發生雪崩問題。因此,對於不重要的快取資料,可以採取服務降級策略,例如乙個比較常見的做法就是,redis出現問題,不去資料庫查詢,而是直接返回預設值給使用者。

快取穿透 擊穿 雪崩 降級

什麼是快取穿透?惡意使用者模擬請求很多快取和資料庫中不存在的資料,導致這些請求短時間內直接落在資料庫上,導致資料庫異常,比如搶購 秒殺活動的介面被使用者惡意刷,或者查詢id為 1的資料。快取穿透解決方案 1.增加校驗,不符合基本查詢資料規則的資料直接攔截,eg id 0的資料不讓查詢 2.給該key...

Redis快取穿透 快取雪崩

把redis作為快取使用已經是司空見慣,但是使用redis後也可能會碰到一系列的問題,尤其是資料量很大的時候,經典的幾個問題如下 一 快取和資料庫間資料一致性問題 分布式環境下 單機就不用說了 非常容易出現快取和資料庫間的資料一致性問題,針對這一點的話,只能說,如果你的專案對快取的要求是強一致性的,...

Redis 快取穿透 快取雪崩

目錄 1.快取穿透 如何避免?如何選擇?2 快取擊穿 如何解決 3.快取雪崩 如何解決?快取穿透 一般的快取系統,都是按照key去快取查詢,如果不存在對應的value,就應該去後端系統查詢 比如db 一些惡意的請求會故意查詢不存在的key,請求量很大,就會對後端系統造成很大的壓力,或導致資料庫異常。...