97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

龍崗網(wǎng)站建設(shè)icxun給公司建立網(wǎng)站嗎

鶴壁市浩天電氣有限公司 2026/01/24 14:28:54
龍崗網(wǎng)站建設(shè)icxun,給公司建立網(wǎng)站嗎,已有備 網(wǎng)站新增網(wǎng)站,阿里巴巴機(jī)械加工網(wǎng)一、緩存擊穿#xff08;一#xff09;概念某個(gè)熱點(diǎn) Key 過期的瞬間#xff0c;大量并發(fā)請(qǐng)求同時(shí)打到數(shù)據(jù)庫#xff0c;導(dǎo)致數(shù)據(jù)庫壓力瞬間飆升#xff0c;甚至被打崩。大量并發(fā)請(qǐng)求 --- 訪問同一個(gè)熱點(diǎn) key ↓ 這個(gè) key 正好過期 ↓ 所有請(qǐng)求同時(shí)繞過 Redis 訪問…一、緩存擊穿一概念某個(gè)熱點(diǎn) Key 過期的瞬間大量并發(fā)請(qǐng)求同時(shí)打到數(shù)據(jù)庫導(dǎo)致數(shù)據(jù)庫壓力瞬間飆升甚至被打崩。大量并發(fā)請(qǐng)求 --- 訪問同一個(gè)熱點(diǎn) key ↓ 這個(gè) key 正好過期 ↓ 所有請(qǐng)求同時(shí)繞過 Redis 訪問數(shù)據(jù)庫 ↓ DB 瞬間壓力過大被打爆二緩存擊穿的后果1. 數(shù)據(jù)庫壓力瞬間飆升熱點(diǎn) Key 過期后大量并發(fā)請(qǐng)求直接落到數(shù)據(jù)庫數(shù)據(jù)庫瞬間承受超高并發(fā)請(qǐng)求CPU、IO 占用飆升2. 系統(tǒng)性能下降數(shù)據(jù)庫響應(yīng)變慢 → 接口響應(yīng)延遲增加3. 請(qǐng)求可能超時(shí)或失敗高并發(fā)下整體系統(tǒng)吞吐量下降4. 可能觸發(fā)雪崩效應(yīng)一個(gè)熱點(diǎn) Key 擊穿導(dǎo)致數(shù)據(jù)庫壓力過大可能影響其他業(yè)務(wù)請(qǐng)求形成連鎖反應(yīng)多個(gè) Key 失效 → 系統(tǒng)整體性能下降5. 運(yùn)維風(fēng)險(xiǎn)增加數(shù)據(jù)庫連接耗盡、事務(wù)阻塞CPU/內(nèi)存占用過高 → 可能導(dǎo)致服務(wù)宕機(jī)需要緊急干預(yù)影響業(yè)務(wù)連續(xù)性三觸發(fā)條件1. 熱點(diǎn) Key高訪問頻率概念熱點(diǎn) Key 是指在短時(shí)間內(nèi)被大量請(qǐng)求訪問的數(shù)據(jù)。特征訪問量遠(yuǎn)高于其他普通 Key可能占據(jù)系統(tǒng)絕大部分流量。具體示例電商網(wǎng)站的某個(gè)秒殺商品庫存信息熱門文章或新聞詳情頁排行榜數(shù)據(jù)如“本周最熱商品 Top 10”為什么關(guān)鍵只有熱點(diǎn)數(shù)據(jù)過期才會(huì)有大量請(qǐng)求瞬間打到數(shù)據(jù)庫引發(fā)壓力。2. Key 過期或被淘汰概念緩存中存放的 Key 可能由于以下原因失效1TTL 到期設(shè)置了過期時(shí)間到時(shí)間就失效2手動(dòng)刪除開發(fā)或運(yùn)維手動(dòng)清理緩存3內(nèi)存淘汰Redis 達(dá)到內(nèi)存上限根據(jù) LRU/LFU 策略淘汰 Key具體示例設(shè)置 SET product_123 100 EX 6060 秒后過期服務(wù)器更新產(chǎn)品信息刪除緩存強(qiáng)制刷新Redis 內(nèi)存滿了大對(duì)象或低頻 Key 被淘汰為什么關(guān)鍵Key 過期或消失后下一次請(qǐng)求會(huì)直接落到數(shù)據(jù)庫這才是擊穿的直接觸發(fā)點(diǎn)。3. 高并發(fā)訪問概念短時(shí)間內(nèi)大量請(qǐng)求同時(shí)訪問同一個(gè) Key。特征瞬時(shí)并發(fā)量遠(yuǎn)高于數(shù)據(jù)庫處理能力。具體示例秒殺活動(dòng)開始時(shí)幾千甚至上萬用戶同時(shí)訪問同一商品庫存熱點(diǎn)文章推送后瞬間大量用戶點(diǎn)擊訪問為什么關(guān)鍵如果并發(fā)量很小即使 Key 過期數(shù)據(jù)庫也能承受壓力只有高并發(fā)訪問才會(huì)引發(fā)真正的緩存擊穿。4. 少了任意一個(gè)條件就不會(huì)發(fā)生緩存擊穿解釋熱點(diǎn) Key 不存在 → 就算并發(fā)很高也不會(huì)擊穿數(shù)據(jù)庫普通 Key 的請(qǐng)求量本來就小Key 沒有過期或被淘汰 → 緩存命中所有請(qǐng)求都打到 Redis不會(huì)落到數(shù)據(jù)庫高并發(fā)訪問 不存在 → 即使 Key 過期也只有少量請(qǐng)求訪問數(shù)據(jù)庫數(shù)據(jù)庫能輕松承受所以 三個(gè)條件必須同時(shí)滿足緩存擊穿才會(huì)發(fā)生。四典型場(chǎng)景1. 熱門商品詳情場(chǎng)景描述電商平臺(tái)的秒殺商品或促銷商品在短時(shí)間內(nèi)被大量用戶訪問每個(gè)用戶都要查詢庫存、價(jià)格、折扣等信息為什么容易擊穿熱點(diǎn) Key這個(gè)商品的緩存是熱點(diǎn)因?yàn)槊霘⒒顒?dòng)期間訪問量極高Key 過期或緩存未命中TTL 到期或者緩存被手動(dòng)刷新高并發(fā)請(qǐng)求幾千甚至上萬用戶同時(shí)訪問數(shù)據(jù)庫查詢庫存技術(shù)后果數(shù)據(jù)庫瞬時(shí)壓力飆升查詢延遲增加 → 可能出現(xiàn)秒殺失敗或頁面崩潰2. 排行榜或統(tǒng)計(jì)數(shù)據(jù)場(chǎng)景描述熱門文章閱讀量、音樂/視頻播放排行榜、實(shí)時(shí)交易額統(tǒng)計(jì)大量用戶同時(shí)查詢“Top N”數(shù)據(jù)為什么容易擊穿熱點(diǎn) Key排行榜數(shù)據(jù)被頻繁訪問Key 過期排行榜緩存每隔一段時(shí)間刷新一次TTL 到期或邏輯過期高并發(fā)訪問緩存過期瞬間所有請(qǐng)求直接打數(shù)據(jù)庫計(jì)算排行技術(shù)后果數(shù)據(jù)庫需要進(jìn)行復(fù)雜聚合計(jì)算CPU/IO 占用高多個(gè) Key 可能同時(shí)被訪問 → 加劇系統(tǒng)壓力3. 系統(tǒng)配置或元數(shù)據(jù)場(chǎng)景描述經(jīng)常查詢的基礎(chǔ)信息例如用戶角色權(quán)限、地區(qū)列表、字典表數(shù)據(jù)訪問頻率高但數(shù)據(jù)量相對(duì)固定為什么容易擊穿熱點(diǎn) Key這些 Key 被多次訪問Key 過期或被刷新配置更新或 TTL 到期高并發(fā)訪問短時(shí)間內(nèi)多個(gè)服務(wù)/用戶請(qǐng)求這些基礎(chǔ)數(shù)據(jù)技術(shù)后果一旦緩存失效基礎(chǔ)數(shù)據(jù)請(qǐng)求直接打數(shù)據(jù)庫影響整個(gè)業(yè)務(wù)鏈條的正常訪問五根本原因1. Redis 只是緩存并非數(shù)據(jù)庫防護(hù)墻Redis 的主要作用是加速數(shù)據(jù)訪問減少數(shù)據(jù)庫壓力Redis 并不會(huì)阻止數(shù)據(jù)庫本身被訪問一旦緩存未命中Key 過期或被淘汰請(qǐng)求就直接打數(shù)據(jù)庫技術(shù)點(diǎn)緩存只是讀寫加速層它不存儲(chǔ)業(yè)務(wù)邏輯約束也不限制請(qǐng)求流量2. 高并發(fā)請(qǐng)求集中在失效 Key 上當(dāng)一個(gè)熱點(diǎn) Key 過期或被刪除瞬間所有訪問這個(gè) Key 的請(qǐng)求都會(huì)落到數(shù)據(jù)庫數(shù)據(jù)庫承受能力有限如果瞬時(shí) QPS 超過數(shù)據(jù)庫峰值 → 查詢排隊(duì)技術(shù)點(diǎn)Redis hit rate 高 → 大部分請(qǐng)求在緩存層就被攔截Key 失效瞬間 → 緩存失效窗口hit rate 突然變低 → DB 瞬時(shí)壓力飆升3. 數(shù)據(jù)庫無法承受大量并發(fā)請(qǐng)求數(shù)據(jù)庫在高并發(fā)下可能出現(xiàn)1CPU 飽和 → 查詢速度下降2IO 瓶頸 → 磁盤或網(wǎng)絡(luò)訪問慢3連接耗盡 → 數(shù)據(jù)庫拒絕新連接3事務(wù)阻塞 → 并發(fā)寫操作阻塞其他請(qǐng)求結(jié)果接口響應(yīng)變慢、請(qǐng)求超時(shí)甚至數(shù)據(jù)庫宕機(jī)技術(shù)點(diǎn)緩存擊穿不是 Redis 的問題而是熱點(diǎn)數(shù)據(jù)失效 數(shù)據(jù)庫瞬時(shí)承載能力不足的系統(tǒng)問題六解決策略1. 熱點(diǎn) Key 永不過期 / 邏輯過期思路對(duì)真正熱點(diǎn)的數(shù)據(jù)不設(shè)置 TTL讓緩存一直存在或者使用“邏輯過期”即緩存中記錄一個(gè)過期時(shí)間但讀取時(shí)仍然可以返回舊數(shù)據(jù)同時(shí)后臺(tái)異步刷新技術(shù)實(shí)現(xiàn)永不過期SET key value 不設(shè)置 EX 參數(shù)邏輯過期緩存結(jié)構(gòu)如 {value: ..., expireTime: 1234567890}讀取時(shí)判斷 expireTime 是否過期如果過期后臺(tái)線程異步更新緩存用戶仍然能讀取舊值適用場(chǎng)景熱門商品、排行榜、系統(tǒng)配置、常用字典數(shù)據(jù)2. 互斥鎖 / 單線程加載思路當(dāng)緩存失效時(shí)只有一個(gè)線程去加載數(shù)據(jù)庫其它線程等待緩存更新避免高并發(fā)同時(shí)打數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)Java 示例String cache redis.get(key); if (cache null) { if (tryLock(key _lock)) { // 嘗試獲取鎖 String dbData queryFromDB(); // 查詢數(shù)據(jù)庫 redis.set(key, dbData, 60); // 回寫緩存 unlock(key _lock); // 釋放鎖 return dbData; } else { Thread.sleep(50); // 等待一段時(shí)間 return redis.get(key); // 重試讀取緩存 } } return cache;適用場(chǎng)景秒殺活動(dòng)、熱點(diǎn) Key 高并發(fā)訪問場(chǎng)景3. 緩存預(yù)熱 定時(shí)刷新思路系統(tǒng)啟動(dòng)或緩存即將過期時(shí)提前加載熱點(diǎn)數(shù)據(jù)到緩存避免緩存失效瞬間出現(xiàn)大量請(qǐng)求落到數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)緩存預(yù)熱系統(tǒng)啟動(dòng)時(shí)讀取數(shù)據(jù)庫將熱點(diǎn) Key 加入 Redis定時(shí)刷新使用定時(shí)任務(wù)或后臺(tái)線程提前更新即將過期的 Key適用場(chǎng)景系統(tǒng)啟動(dòng)后的熱門數(shù)據(jù)高頻訪問的排行榜或統(tǒng)計(jì)數(shù)據(jù)4. 降級(jí)處理 / 限流思路當(dāng)緩存擊穿瞬間可以對(duì)部分請(qǐng)求做降級(jí)或限流保護(hù)數(shù)據(jù)庫部分請(qǐng)求直接返回默認(rèn)值或提示稍后再試技術(shù)實(shí)現(xiàn)使用限流器如令牌桶、漏桶算法限制數(shù)據(jù)庫訪問頻率對(duì)熱點(diǎn)查詢返回緩存的舊值或默認(rèn)值結(jié)合互斥鎖或邏輯過期提高系統(tǒng)容錯(cuò)能力適用場(chǎng)景秒殺活動(dòng)、熱門接口請(qǐng)求暴增場(chǎng)景保護(hù)數(shù)據(jù)庫穩(wěn)定保證系統(tǒng)可用性七優(yōu)化角度1. 熱點(diǎn)識(shí)別概念先識(shí)別哪些 Key 是真正的熱點(diǎn)數(shù)據(jù)訪問頻率高、壓力大的 Key針對(duì)這些 Key 才做特殊處理。具體做法1在 Redis 中記錄訪問頻率或使用監(jiān)控統(tǒng)計(jì)訪問量2根據(jù)訪問量排序識(shí)別訪問量大的 Key 為熱點(diǎn)3對(duì)熱點(diǎn) Key 可采取“永不過期”或“邏輯過期 異步刷新”等策略作用只針對(duì)真正的熱點(diǎn)做優(yōu)化避免資源浪費(fèi)降低緩存擊穿風(fēng)險(xiǎn)2. TTL 差異化概念給不同 Key 設(shè)置不同過期時(shí)間避免大量熱點(diǎn) Key 同時(shí)過期。具體做法對(duì)普通 Key 設(shè)置短 TTL對(duì)熱點(diǎn) Key 設(shè)置長(zhǎng) TTL 或邏輯過期可以給相似熱點(diǎn) Key 設(shè)置錯(cuò)開 TTL避免同時(shí)失效作用避免多個(gè)熱點(diǎn) Key 同時(shí)過期 → 大量請(qǐng)求同時(shí)打數(shù)據(jù)庫平滑系統(tǒng)壓力3. 分布式鎖 / 單點(diǎn)加載概念緩存失效時(shí)保證只有一個(gè)請(qǐng)求去訪問數(shù)據(jù)庫加載數(shù)據(jù)其他請(qǐng)求等待或重試緩存。具體做法使用 Redis 的 SETNX 或 Redisson 提供的分布式鎖第一個(gè)請(qǐng)求獲取鎖去加載數(shù)據(jù)庫其他請(qǐng)求等待鎖釋放或讀取緩存作用避免高并發(fā)請(qǐng)求同時(shí)擊穿數(shù)據(jù)庫控制數(shù)據(jù)庫瞬時(shí)壓力示例流程請(qǐng)求1 → 獲取鎖 → 查詢 DB → 回寫緩存 → 釋放鎖 請(qǐng)求2 → 獲取鎖失敗 → 等待 / 重試緩存 請(qǐng)求3 → 同上4. 邏輯過期 異步刷新概念緩存中存儲(chǔ)數(shù)據(jù)的邏輯過期時(shí)間而不是直接讓 Key 過期。具體做法1緩存結(jié)構(gòu){value: ..., expireTime: timestamp}2讀取時(shí)判斷 expireTime 是否過期未過期 → 直接返回緩存已過期 → 后臺(tái)線程異步刷新緩存前端仍返回舊值3異步刷新完成后更新緩存作用用戶請(qǐng)求不會(huì)直接落到數(shù)據(jù)庫避免緩存失效瞬間擊穿數(shù)據(jù)庫保證系統(tǒng)高并發(fā)下可用性八注意事項(xiàng)1. 分布式系統(tǒng)注意點(diǎn)在多節(jié)點(diǎn)或微服務(wù)環(huán)境下如果采用 分布式鎖 或 邏輯過期刷新需要保證跨節(jié)點(diǎn)的一致性??墒褂贸墒斓墓ぞ呋蚩蚣軐?shí)現(xiàn)分布式鎖例如 Redisson、ZooKeeper 或 Etcd。這樣可以避免多個(gè)節(jié)點(diǎn)同時(shí)刷新緩存防止數(shù)據(jù)庫壓力再次集中。2. 數(shù)據(jù)一致性問題使用 邏輯過期 異步刷新 時(shí)可能會(huì)在短時(shí)間內(nèi)返回過期的舊數(shù)據(jù)臟數(shù)據(jù)。需要根據(jù)業(yè)務(wù)可容忍度判斷是否可以接受這種短暫的不一致例如排行榜、商品瀏覽量等統(tǒng)計(jì)類數(shù)據(jù)通常允許短暫延遲。對(duì)于對(duì)實(shí)時(shí)性要求高的關(guān)鍵業(yè)務(wù)需額外設(shè)計(jì)一致性策略。3. 限流/降級(jí)策略的組合使用在高并發(fā)場(chǎng)景下單獨(dú)的策略可能不足以完全保護(hù)數(shù)據(jù)庫。推薦組合方案邏輯過期 分布式鎖 限流/降級(jí)這樣可以確保請(qǐng)求不會(huì)直接擊穿數(shù)據(jù)庫緩存刷新有序系統(tǒng)在瞬時(shí)高并發(fā)下仍保持可用性二、緩存穿透一概念緩存穿透指的是 查詢一個(gè)根本不存在的數(shù)據(jù)時(shí)請(qǐng)求會(huì)繞過緩存直接打到數(shù)據(jù)庫如果這種請(qǐng)求量很大會(huì)導(dǎo)致數(shù)據(jù)庫壓力急劇增加。核心請(qǐng)求的數(shù)據(jù)在緩存和數(shù)據(jù)庫中都不存在表現(xiàn)緩存永遠(yuǎn)無法命中數(shù)據(jù)庫承受全部請(qǐng)求請(qǐng)求數(shù)據(jù)A不存在 ↓ Redis查詢未命中 ↓ 直接訪問數(shù)據(jù)庫 ↓ 數(shù)據(jù)庫也沒有該數(shù)據(jù) ↓ 返回結(jié)果給用戶特點(diǎn)數(shù)據(jù)不存在 → 每次請(qǐng)求都要查詢數(shù)據(jù)庫緩存沒有命中 → 每次都落到數(shù)據(jù)庫高并發(fā)下可能造成數(shù)據(jù)庫壓力過大二觸發(fā)原因1. 用戶惡意請(qǐng)求惡意刷接口隨機(jī)生成不存在的 ID 請(qǐng)求例如/product/999999999數(shù)據(jù)庫中根本沒有2. 程序缺陷或參數(shù)錯(cuò)誤前端或接口調(diào)用傳錯(cuò)參數(shù)導(dǎo)致請(qǐng)求不存在的數(shù)據(jù)例如用戶傳了非法商品 ID 或拼寫錯(cuò)誤的關(guān)鍵字3. 緩存未處理空結(jié)果查詢不存在的數(shù)據(jù)緩存層沒有保存空對(duì)象每次請(qǐng)求都走數(shù)據(jù)庫 → 穿透三典型場(chǎng)景1. 商品查詢接口用戶請(qǐng)求不存在的商品 ID沒有緩存空對(duì)象 → 每次都打數(shù)據(jù)庫2. 用戶登錄或注冊(cè)校驗(yàn)接口查詢不存在的用戶名或手機(jī)號(hào)高并發(fā)時(shí)可能形成數(shù)據(jù)庫壓力3. 通用搜索或統(tǒng)計(jì)接口查詢歷史不存在的記錄或隨機(jī)關(guān)鍵字?jǐn)?shù)據(jù)庫承載能力下降四可能后果1. 數(shù)據(jù)庫壓力增加大量不存在的數(shù)據(jù)請(qǐng)求直接落到數(shù)據(jù)庫CPU、IO 占用增加2. 接口響應(yīng)變慢 / 超時(shí)高并發(fā)下數(shù)據(jù)庫響應(yīng)慢接口可能返回超時(shí)3. 系統(tǒng)可用性降低數(shù)據(jù)庫過載 → 其他正常請(qǐng)求也受影響4. 潛在安全風(fēng)險(xiǎn)惡意請(qǐng)求可能導(dǎo)致拒絕服務(wù)DoS攻擊五解決策略1. 緩存空對(duì)象Null Cache將數(shù)據(jù)庫查詢不存在的數(shù)據(jù)也緩存起來空對(duì)象或特殊標(biāo)記設(shè)置較短 TTL 避免緩存無限膨脹示例String cache redis.get(key); if (cache ! null) { return cache.equals(NULL) ? null : cache; } else { String dbData queryFromDB(); if (dbData null) { redis.set(key, NULL, 60); // 緩存空對(duì)象 return null; } else { redis.set(key, dbData, 3600); return dbData; } }2. 布隆過濾器Bloom Filter在請(qǐng)求到達(dá)緩存/數(shù)據(jù)庫之前用布隆過濾器快速判斷 key 是否存在不存在的請(qǐng)求直接攔截避免落到數(shù)據(jù)庫特點(diǎn)支持海量數(shù)據(jù)允許少量誤判存在概率誤判為存在但不會(huì)漏判場(chǎng)景熱門商品 ID、用戶 ID 等高頻接口3. 接口層校驗(yàn) / 參數(shù)校驗(yàn)對(duì)傳入請(qǐng)求參數(shù)做合法性校驗(yàn)非法 ID、空 ID、格式錯(cuò)誤的請(qǐng)求直接拒絕4. 限流和防刷策略對(duì)接口增加限流、頻率限制防止惡意請(qǐng)求或高并發(fā)重復(fù)查詢不存在數(shù)據(jù)六進(jìn)一步優(yōu)化與注意事項(xiàng)1. 分布式環(huán)境注意點(diǎn)如果系統(tǒng)是多節(jié)點(diǎn)或微服務(wù)架構(gòu)需要保證布隆過濾器或緩存空對(duì)象在各節(jié)點(diǎn)的一致性。可以使用 集中式布隆過濾器 或分布式緩存同步策略避免不同節(jié)點(diǎn)出現(xiàn)數(shù)據(jù)不一致。2. 空對(duì)象緩存策略優(yōu)化緩存空對(duì)象時(shí)需要控制 TTL避免占用過多緩存資源。對(duì)于熱門但不存在的數(shù)據(jù)可以適當(dāng)加長(zhǎng) TTL對(duì)于隨機(jī)或惡意請(qǐng)求的數(shù)據(jù)TTL 設(shè)置短一些即可。結(jié)合日志監(jiān)控發(fā)現(xiàn)頻繁穿透的 Key可進(jìn)一步處理或封禁請(qǐng)求源。3. 結(jié)合限流與防刷策略在高并發(fā)或惡意請(qǐng)求場(chǎng)景單靠緩存空對(duì)象或布隆過濾器可能不足??梢允褂?限流 防刷例如限制接口每秒請(qǐng)求次數(shù)對(duì)異常頻繁請(qǐng)求 IP 或用戶進(jìn)行封禁或驗(yàn)證碼驗(yàn)證結(jié)合緩存策略可以更有效保護(hù)數(shù)據(jù)庫穩(wěn)定性。4. 監(jiān)控與報(bào)警對(duì)緩存命中率、數(shù)據(jù)庫查詢量進(jìn)行監(jiān)控當(dāng)發(fā)現(xiàn)緩存命中率下降、數(shù)據(jù)庫異常增多時(shí)觸發(fā)告警幫助運(yùn)維及時(shí)發(fā)現(xiàn)緩存穿透攻擊或異常請(qǐng)求三、緩存雪崩一概念緩存雪崩指的是大量緩存同時(shí)失效導(dǎo)致大量請(qǐng)求直接打到數(shù)據(jù)庫使數(shù)據(jù)庫瞬間承受超高壓力可能導(dǎo)致系統(tǒng)不可用。核心大量緩存同時(shí)過期或失效表現(xiàn)數(shù)據(jù)庫壓力驟增接口響應(yīng)延遲或失敗流程示意大量熱點(diǎn)Key同時(shí)過期 ↓ 緩存全部未命中 ↓ 請(qǐng)求全部打到數(shù)據(jù)庫 ↓ 數(shù)據(jù)庫承受高壓 ↓ 接口響應(yīng)變慢或宕機(jī)特點(diǎn)大量 Key 同時(shí)失效 → 大量請(qǐng)求集中落到數(shù)據(jù)庫高并發(fā)下數(shù)據(jù)庫無法承受 → 系統(tǒng)可能整體不可用不同于緩存擊穿緩存雪崩可能涉及 多個(gè) Key而擊穿通常是 單個(gè)熱點(diǎn) Key二觸發(fā)原因1. 大量 Key TTL 相同系統(tǒng)初始化時(shí)給緩存設(shè)置了統(tǒng)一過期時(shí)間例如都 1 小時(shí)到期瞬間大量請(qǐng)求同時(shí)訪問數(shù)據(jù)庫2. Redis 宕機(jī)或重啟Redis 服務(wù)不可用 → 緩存全部失效所有請(qǐng)求直接落到數(shù)據(jù)庫3. 緩存淘汰策略觸發(fā)當(dāng) Redis 內(nèi)存不足根據(jù) LRU/LFU 策略淘汰大量 Key瞬時(shí)失效 → 請(qǐng)求直接訪問數(shù)據(jù)庫三典型場(chǎng)景1. 秒殺活動(dòng)或促銷活動(dòng)活動(dòng)前預(yù)熱緩存設(shè)置統(tǒng)一過期時(shí)間活動(dòng)開始或 TTL 到期 → 大量商品緩存同時(shí)過期大量請(qǐng)求直接打數(shù)據(jù)庫 → 宕機(jī)風(fēng)險(xiǎn)2. 系統(tǒng)啟動(dòng)或 Redis 重啟系統(tǒng)重啟或 Redis 重啟 → 緩存清空熱門 Key 未預(yù)熱 → 請(qǐng)求直接落數(shù)據(jù)庫3. 大規(guī)模緩存失效一些批量刷新或緩存清理操作例如定時(shí)清理排行榜、統(tǒng)計(jì)數(shù)據(jù)多個(gè) Key 同時(shí)失效 → 請(qǐng)求瞬間集中四可能后果1. 數(shù)據(jù)庫瞬時(shí)壓力飆升CPU、IO、連接數(shù)暴漲2. 接口響應(yīng)延遲或失敗請(qǐng)求排隊(duì) → 用戶體驗(yàn)差3. 系統(tǒng)可用性下降多個(gè)業(yè)務(wù)模塊同時(shí)受影響 → 鏈?zhǔn)椒磻?yīng)4. 觸發(fā)緩存擊穿或雪崩放大一個(gè) Key 的高并發(fā)擊穿 大量 Key 同時(shí)過期 → 系統(tǒng)雪崩五解決策略1. 緩存過期時(shí)間錯(cuò)開 / 隨機(jī)化 TTL給 Key TTL 增加隨機(jī)偏移量避免大量 Key 同時(shí)過期例如設(shè)置 TTL 3600 ± random(0~300) 秒2. 緩存預(yù)熱Cache Preload系統(tǒng)啟動(dòng)或緩存即將失效前提前加載熱點(diǎn)數(shù)據(jù)到緩存避免大量請(qǐng)求落到數(shù)據(jù)庫3. 互斥鎖或單線程加載當(dāng)緩存失效時(shí)控制只有一個(gè)請(qǐng)求訪問數(shù)據(jù)庫其它請(qǐng)求等待避免高并發(fā)直接打數(shù)據(jù)庫4. 降級(jí)與限流對(duì)部分請(qǐng)求返回默認(rèn)值或提示稍后重試使用限流器控制訪問數(shù)據(jù)庫的速率5. 多級(jí)緩存 / 本地緩存 Redis本地緩存存熱點(diǎn)數(shù)據(jù) → Redis 失效前可以命中本地緩存降低對(duì) Redis 和數(shù)據(jù)庫瞬時(shí)壓力
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

北京網(wǎng)站搭建方案百度公司的業(yè)務(wù)范圍

北京網(wǎng)站搭建方案,百度公司的業(yè)務(wù)范圍,建站公司建的網(wǎng)站能改動(dòng)嗎,申請(qǐng)網(wǎng)址怎么申請(qǐng)的你是否曾懷疑#xff1a;AI寫作工具真能提升我的寫作水平#xff0c;還是只會(huì)讓我變懶#xff1f;今天#xff0c

2026/01/23 15:15:01

廣州網(wǎng)站制作培訓(xùn)青峰集團(tuán)響應(yīng)式網(wǎng)站

廣州網(wǎng)站制作培訓(xùn),青峰集團(tuán)響應(yīng)式網(wǎng)站,wordpress安裝后要?jiǎng)h除哪些文件,發(fā)布軟文的平臺(tái)LobeChat 災(zāi)備恢復(fù)實(shí)踐#xff1a;從架構(gòu)設(shè)計(jì)到快速重建 在 AI 應(yīng)用日益深入業(yè)務(wù)核心的今天#xf

2026/01/23 13:30:01

公司網(wǎng)站建設(shè)屬于無形資產(chǎn)嗎微網(wǎng)站建設(shè)行業(yè)現(xiàn)狀

公司網(wǎng)站建設(shè)屬于無形資產(chǎn)嗎,微網(wǎng)站建設(shè)行業(yè)現(xiàn)狀,app制作開發(fā),互聯(lián)網(wǎng)工作室暴利項(xiàng)目蜣螂優(yōu)化算法DBO優(yōu)化LSSVM的c和g參數(shù)做多特征輸入單輸出的二分類及多分類模型。 程序內(nèi)注釋詳細(xì)替換數(shù)據(jù)就可以用

2026/01/23 05:44:01