欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis緩存雪崩、緩存擊穿、緩存穿透詳解

 更新時(shí)間:2025年07月22日 09:11:23   作者:在成都搬磚的鴨鴨  
本文介紹了緩存雪崩、擊穿、穿透三種問(wèn)題:雪崩因大量緩存同時(shí)失效導(dǎo)致數(shù)據(jù)庫(kù)壓力激增,需差異化TTL、多級(jí)緩存及熔斷機(jī)制;擊穿由熱點(diǎn)key失效引發(fā),可用互斥鎖、邏輯過(guò)期或預(yù)加載;穿透則因非法查詢穿透緩存,需布隆過(guò)濾器、空對(duì)象或參數(shù)校驗(yàn)

1、緩存雪崩

【1】定義

大量緩存數(shù)據(jù)在同一時(shí)間失效,導(dǎo)致所有請(qǐng)求直接打到數(shù)據(jù)庫(kù),引發(fā)數(shù)據(jù)庫(kù)瞬時(shí)高負(fù)載甚至崩潰

【2】原因

1、緩存數(shù)據(jù)設(shè)置了相同的過(guò)期時(shí)間

2、緩存服務(wù)宕機(jī)

【3】解決方案

[1]差異化過(guò)期時(shí)間

在基礎(chǔ)TTL上增加隨機(jī)值,避免同時(shí)失效

[2]多級(jí)緩存

結(jié)合本地緩存和分布式緩存,本地緩存失效后回源到分布式緩存

[3]熔斷降級(jí)

監(jiān)控?cái)?shù)據(jù)庫(kù)負(fù)載,超過(guò)閾值時(shí)觸發(fā)熔斷(如返回默認(rèn)值或限流)

[4]緩存永不過(guò)期+異步更新

緩存不設(shè)TTL,通過(guò)后臺(tái)任務(wù)定期更新(適合低頻變更數(shù)據(jù))

2、緩存擊穿

【1】定義

某個(gè)熱點(diǎn)key突然失效,大量并發(fā)請(qǐng)求直接穿透到數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)壓力激增

【2】原因

1、熱點(diǎn)key過(guò)期

2、惡意請(qǐng)求故意攻擊高頻訪問(wèn)的key

【3】解決方案

[1]互斥鎖

第一個(gè)請(qǐng)求發(fā)現(xiàn)緩存失效時(shí),加鎖(如Redis SETNX),從數(shù)據(jù)庫(kù)加載數(shù)據(jù)后釋放鎖,其它請(qǐng)求等待或輪詢

[2]邏輯過(guò)期

1、緩存永不過(guò)期,但存儲(chǔ)數(shù)據(jù)時(shí)附加一個(gè)過(guò)期時(shí)間字段

2、發(fā)現(xiàn)數(shù)據(jù)邏輯過(guò)期時(shí),觸發(fā)異步更新

[3]熱點(diǎn)數(shù)據(jù)加載

監(jiān)控?zé)狳c(diǎn)key,在接近過(guò)期時(shí)提前刷新緩存

3、緩存穿透

【1】定義

查詢不存在的數(shù)據(jù)(如非法ID、惡意攻擊),導(dǎo)致請(qǐng)求繞過(guò)緩存直接訪問(wèn)數(shù)據(jù)庫(kù)

【2】原因

1、業(yè)務(wù)邏輯漏洞(如未校驗(yàn)參數(shù)合法性)

2、惡意攻擊(如爬蟲(chóng)偽造不存在的ID)

【3】解決方案

[1]緩存空對(duì)象

對(duì)查詢不到的數(shù)據(jù),混存一個(gè)空值,并設(shè)置較短TTL

[2]布隆過(guò)濾器

在緩存層前加布隆過(guò)濾器,快速判斷key是否存在:若布隆過(guò)濾器返回不存在,直接拒絕請(qǐng)求;若返回可能存在,繼續(xù)查詢緩存/數(shù)據(jù)庫(kù)

[3]參數(shù)校驗(yàn)

對(duì)請(qǐng)求參數(shù)做合法性校驗(yàn)

4、對(duì)比總結(jié)

問(wèn)題觸發(fā)條件核心解決方案
緩存雪崩大量key同時(shí)失效差異化TTL、多級(jí)緩存、熔斷降級(jí)
緩存擊穿單個(gè)熱點(diǎn)key失效互斥鎖、邏輯過(guò)期、預(yù)加載
緩存穿透查詢不存在的數(shù)據(jù)布隆過(guò)濾器、控制緩存、參數(shù)校驗(yàn)

5、最佳實(shí)踐

1、監(jiān)控與告警:實(shí)時(shí)監(jiān)控緩存命中率、數(shù)據(jù)庫(kù)QPS,設(shè)置閾值告警

2、壓測(cè)模擬:通過(guò)模擬雪崩/擊穿場(chǎng)景,驗(yàn)證解決方案的可靠性

3、組合策略:根據(jù)業(yè)務(wù)場(chǎng)景混合使用上述方案

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis Sentinel的使用方法

    Redis Sentinel的使用方法

    這篇文章主要介紹了Redis Sentinel的使用方法,幫助大家更好的理解和學(xué)習(xí)使用Redis數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-03-03
  • Redis Cluster集群動(dòng)態(tài)擴(kuò)容的實(shí)現(xiàn)

    Redis Cluster集群動(dòng)態(tài)擴(kuò)容的實(shí)現(xiàn)

    本文主要介紹了Redis Cluster集群動(dòng)態(tài)擴(kuò)容的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 詳解redis中的鎖以及使用場(chǎng)景

    詳解redis中的鎖以及使用場(chǎng)景

    這篇文章主要介紹了詳解redis中的鎖以及使用場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Redis監(jiān)控工具RedisInsight安裝與使用

    Redis監(jiān)控工具RedisInsight安裝與使用

    這篇文章主要為大家介紹了Redis監(jiān)控工具RedisInsight的安裝步驟與使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Windows系統(tǒng)安裝redis數(shù)據(jù)庫(kù)

    Windows系統(tǒng)安裝redis數(shù)據(jù)庫(kù)

    這篇文章介紹了Windows系統(tǒng)安裝redis數(shù)據(jù)庫(kù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Redis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    Redis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫(xiě)少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • redis的兩種持久化方式RDB和AOF解讀

    redis的兩種持久化方式RDB和AOF解讀

    Redis提供了RDB和AOF兩種持久化方式,RDB是快照持久化,通過(guò)配置文件中的save指令開(kāi)啟和配置,可以設(shè)置觸發(fā)快照的條件,AOF是日志持久化,每次寫(xiě)操作都會(huì)追加到AOF文件中,并可以通過(guò)配置文件設(shè)置持久化頻率和重寫(xiě)策略,RDB和AOF可以結(jié)合使用,以提高數(shù)據(jù)的安全性和恢復(fù)效率
    2025-03-03
  • 淺析Redis如何保證數(shù)據(jù)不丟失

    淺析Redis如何保證數(shù)據(jù)不丟失

    Redis是一種Nosql類型的數(shù)據(jù)存儲(chǔ),全稱Remote?Dictionary?Server,也就是遠(yuǎn)程字典服務(wù)器,本文主要來(lái)和大家討論一下Redis如何保證數(shù)據(jù)不丟失,需要的可以參考下
    2024-02-02
  • Spring?Boot?整合Redis?實(shí)現(xiàn)優(yōu)惠卷秒殺?一人一單功能

    Spring?Boot?整合Redis?實(shí)現(xiàn)優(yōu)惠卷秒殺?一人一單功能

    這篇文章主要介紹了Spring?Boot?整合Redis?實(shí)現(xiàn)優(yōu)惠卷秒殺?一人一單,在分布式系統(tǒng)下,高并發(fā)的場(chǎng)景下,會(huì)出現(xiàn)此類庫(kù)存超賣(mài)問(wèn)題,本篇文章介紹了采用樂(lè)觀鎖來(lái)解決,需要的朋友可以參考下
    2022-09-09
  • redis中熱key問(wèn)題該如何解決

    redis中熱key問(wèn)題該如何解決

    這篇文章主要給大家介紹了關(guān)于redis中熱key問(wèn)題該如何解決的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論