女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

緩存被穿透了如何解決

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 2023-05-23 09:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

首先來了解幾個(gè)概念:

緩存穿透:大量請(qǐng)求根本不存在的key

緩存雪崩:redis中大量key集體過期

緩存擊穿:redis中一個(gè)熱點(diǎn)key過期(大量用戶訪問該熱點(diǎn)key,但是熱點(diǎn)key過期)

穿透解決方案

對(duì)空值進(jìn)行緩存

設(shè)置白名單

使用布隆過濾器

網(wǎng)警

雪崩解決方案

進(jìn)行預(yù)先的熱門詞匯的設(shè)置,進(jìn)行key時(shí)長的調(diào)整

實(shí)時(shí)調(diào)整,監(jiān)控哪些數(shù)據(jù)是熱門數(shù)據(jù),實(shí)時(shí)的調(diào)整key的過期時(shí)長

使用鎖機(jī)制

擊穿解決方案

進(jìn)行預(yù)先的熱門詞匯的設(shè)置,進(jìn)行key時(shí)長的調(diào)整

實(shí)時(shí)調(diào)整,監(jiān)控哪些數(shù)據(jù)是熱門數(shù)據(jù),實(shí)時(shí)的調(diào)整key的過期時(shí)長

使用鎖機(jī)制

三者出現(xiàn)的根本原因在于Redis命中率下降,請(qǐng)求直接打在DB上。

正常情況下,大量的資源請(qǐng)求都會(huì)被redis響應(yīng),在redis得不到響應(yīng)的小部分請(qǐng)求才會(huì)去請(qǐng)求DB,這樣DB的壓力是非常小的,是可以正常工作的(如下圖)

32969420-f8f4-11ed-90ce-dac502259ad0.png

如果大量的請(qǐng)求在redis上得不到響應(yīng),那么就會(huì)導(dǎo)致這些請(qǐng)求會(huì)直接去訪問DB,導(dǎo)致DB的壓力瞬間變大而卡死或者宕機(jī)。

大量的高并發(fā)的請(qǐng)求打在redis上

這些請(qǐng)求發(fā)現(xiàn)redis上并沒有需要請(qǐng)求的資源,redis命中率降低

因此這些大量的高并發(fā)請(qǐng)求轉(zhuǎn)向DB(數(shù)據(jù)庫服務(wù)器)請(qǐng)求對(duì)應(yīng)的資源

DB壓力瞬間增大,直接將DB打垮,進(jìn)而引發(fā)一系列“災(zāi)害”

如下圖所示

32b3e2d2-f8f4-11ed-90ce-dac502259ad0.png

那么為什么redis會(huì)沒有需要訪問的數(shù)據(jù)呢?通過分析大致可以總結(jié)為三種情況,也就對(duì)應(yīng)著redis的雪崩、穿透和擊穿

32caafa8-f8f4-11ed-90ce-dac502259ad0.png

情景分析

緩存穿透

緩存穿透產(chǎn)生的原因:請(qǐng)求根本不存在的資源(DB本身就不存在,Redis更是不存在)

舉例(情景在線):客戶端發(fā)送大量的不可響應(yīng)的請(qǐng)求

當(dāng)大量的客戶端發(fā)出類似于:http://localhost:8080/user/19833?id=-3872 的請(qǐng)求,就可能導(dǎo)致出現(xiàn)緩存穿透的情況。因?yàn)閿?shù)據(jù)庫DB中本身就沒有id=-3872的用戶的數(shù)據(jù),所以Redis也沒有對(duì)應(yīng)的數(shù)據(jù),那么這些請(qǐng)求在redis就得不到響應(yīng),就會(huì)直接打在DB上,導(dǎo)致DB壓力過大而卡死情景在線或宕機(jī)。

緩存穿透很有可能是黑客攻擊所為,黑客通過發(fā)送大量的高并發(fā)的無法響應(yīng)的請(qǐng)求給服務(wù)器,由于請(qǐng)求的資源根本就不存在,DB就很容易被打垮了。

解決方案

對(duì)空值進(jìn)行緩存:

類似于上面的例子,雖然數(shù)據(jù)庫中沒有id=-3872的用戶的數(shù)據(jù),但是在redis中對(duì)他進(jìn)行緩存(key=-3872,value=null),這樣當(dāng)請(qǐng)求到達(dá)redis的時(shí)候就會(huì)直接返回一個(gè)null的值給客戶端,避免了大量無法訪問的數(shù)據(jù)直接打在DB上

實(shí)時(shí)監(jiān)控:

對(duì)redis進(jìn)行實(shí)時(shí)監(jiān)控,當(dāng)發(fā)現(xiàn)redis中的命中率下降的時(shí)候進(jìn)行原因的排查,配合運(yùn)維人員對(duì)訪問對(duì)象和訪問數(shù)據(jù)進(jìn)行分析查詢,從而進(jìn)行黑名單的設(shè)置限制服務(wù)(拒絕黑客攻擊)

使用布隆過濾器

使用BitMap作為布隆過濾器,將目前所有可以訪問到的資源通過簡單的映射關(guān)系放入到布隆過濾器中(哈希計(jì)算),當(dāng)一個(gè)請(qǐng)求來臨的時(shí)候先進(jìn)行布隆過濾器的判斷,如果有那么才進(jìn)行放行,否則就直接攔截

接口校驗(yàn)

類似于用戶權(quán)限的攔截,對(duì)于id=-3872這些無效訪問就直接攔截,不允許這些請(qǐng)求到達(dá)Redis、DB上。

注意事項(xiàng):

使用空值作為緩存的時(shí)候,key設(shè)置的過期時(shí)間不能太長,防止占用太多redis資源

使用空值作為緩存只能防止黑客重復(fù)使用相同的id暴力攻擊,但是如果黑客使用動(dòng)態(tài)的無效id攻擊就沒有效果(需要配合網(wǎng)警)

使用布隆過濾器也是有哈希沖突的可能

緩存雪崩

緩存雪崩產(chǎn)生的原因:redis中大量的key集體過期

舉例:

當(dāng)redis中的大量key集體過期,可以理解為redis中的大部分?jǐn)?shù)據(jù)都被清空了(失效了),那么這時(shí)候如果有大量并發(fā)的請(qǐng)求來到,那么redis就無法進(jìn)行有效的響應(yīng)(命中率急劇下降),請(qǐng)求就都打到DB上了,到時(shí)DB直接崩潰。

解決方案:

將失效時(shí)間分散開

通過使用自動(dòng)生成隨機(jī)數(shù)使得key的過期時(shí)間是隨機(jī)的,防止集體過期

使用多級(jí)架構(gòu)

使用nginx緩存+redis緩存+其他緩存,不同層使用不同的緩存,可靠性更強(qiáng)

設(shè)置緩存標(biāo)記

記錄緩存數(shù)據(jù)是否過期,如果過期會(huì)觸發(fā)通知另外的線程在后臺(tái)去跟新實(shí)際的key

使用鎖或者隊(duì)列的方式

如果查不到就加上排它鎖,其他請(qǐng)求只能進(jìn)行等待

緩存擊穿

產(chǎn)生緩存雪崩的原因:redis中的某個(gè)熱點(diǎn)key過期,但是此時(shí)有大量的用戶訪問該過期key

舉例:

類似于“某男明星塌房事件”上了熱搜,這時(shí)候大量的“粉絲”都在訪問該熱點(diǎn)事件,但是可能優(yōu)于某種原因,redis的這個(gè)熱點(diǎn)key過期了,那么這時(shí)候大量高并發(fā)對(duì)于該key的請(qǐng)求就得不到redis的響應(yīng),那么就會(huì)將請(qǐng)求直接打在DB服務(wù)器上,導(dǎo)致整個(gè)DB癱瘓。

解決方案:

提前對(duì)熱點(diǎn)數(shù)據(jù)進(jìn)行設(shè)置

類似于新聞、某博等軟件都需要對(duì)熱點(diǎn)數(shù)據(jù)進(jìn)行預(yù)先設(shè)置在redis中

監(jiān)控?cái)?shù)據(jù),適時(shí)調(diào)整

監(jiān)控哪些數(shù)據(jù)是熱門數(shù)據(jù),實(shí)時(shí)的調(diào)整key的過期時(shí)長

使用鎖機(jī)制

最后的防線,當(dāng)熱點(diǎn)key過期,那么就使用鎖機(jī)制防止大量的請(qǐng)求直接打在DB

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    246

    瀏覽量

    27113
  • 過濾器
    +關(guān)注

    關(guān)注

    1

    文章

    438

    瀏覽量

    20325
  • key
    key
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    13071

原文標(biāo)題:緩存被穿透了怎么辦?

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    何解決數(shù)據(jù)庫與緩存一致性

    緩存一致性 每次逢年過節(jié)的時(shí)候搶票非常艱難,放票的時(shí)候那么多人同時(shí)去搶票,如果所有人查詢、購票等都去訪問數(shù)據(jù)庫,那數(shù)據(jù)庫的壓力得有多大,這時(shí)候很多都會(huì)引入緩存, 把車票信息放入緩存,這樣可以減少
    的頭像 發(fā)表于 09-25 15:25 ?1373次閱讀
    如<b class='flag-5'>何解</b>決數(shù)據(jù)庫與<b class='flag-5'>緩存</b>一致性

    何解決藍(lán)牙協(xié)議棧鎖問題?

    何解決藍(lán)牙協(xié)議棧鎖問題
    發(fā)表于 03-21 08:21

    使用altium designer時(shí)候出現(xiàn)了如下錯(cuò)誤

    使用altium designer時(shí)候出現(xiàn)了如下錯(cuò)誤,請(qǐng)問應(yīng)該如何解決??跪謝!
    發(fā)表于 01-26 15:36

    搭建自己的IOT平臺(tái)---內(nèi)網(wǎng)穿透

    IOT平臺(tái)的外網(wǎng)訪問。在虛擬機(jī)完成IOT平臺(tái)搭建之后,接下來就是內(nèi)網(wǎng)穿透了,其實(shí)很簡單·,只需在花生殼官網(wǎng)注冊(cè)一個(gè)賬號(hào),每個(gè)賬號(hào)都會(huì)有兩個(gè)免費(fèi)的內(nèi)網(wǎng)穿透的域名供你使用。官網(wǎng)網(wǎng)址 https
    發(fā)表于 12-09 23:14

    汽車電池沒電了如何解決?教你“借電”技巧

    汽車電池沒電了如何解決?教你“借電”技巧 要發(fā)動(dòng)汽車,卻發(fā)現(xiàn)電池沒電了,想必許多人都遇到過這種情況。所以,如何正確“借電”也是開車的一門
    發(fā)表于 11-06 08:44 ?7808次閱讀

    iphone密碼多次輸入錯(cuò)誤鎖如何解?

    iphone密碼多次輸入錯(cuò)誤鎖如何解? iPhone允許您設(shè)置一個(gè)密碼,在開機(jī)或按下喚醒按鈕時(shí)可以輸入此密碼。這在 iPhone用戶指南和功能
    發(fā)表于 02-02 09:45 ?3.3w次閱讀

    何解決模擬混合信號(hào)設(shè)計(jì)的挑戰(zhàn)

    這種按需網(wǎng)絡(luò)研討會(huì)演示了如何解決模擬混合信號(hào)設(shè)計(jì)挑戰(zhàn)增加可靠性和速度與AMS墊專業(yè)產(chǎn)品開發(fā)。
    的頭像 發(fā)表于 10-18 07:08 ?3768次閱讀

    緩存雪崩/穿透/擊穿的解決方案

    緩存是我們項(xiàng)目應(yīng)用肯定會(huì)使用,是我們數(shù)據(jù)庫的守護(hù)神,能夠保證數(shù)據(jù)庫的穩(wěn)定,能夠提高整個(gè)系統(tǒng)的性能。一般我們采用市面上的redis、memcahce方案;redis已經(jīng)非常強(qiáng)大了,每秒支持幾萬的連接時(shí)不成問題。
    發(fā)表于 01-26 09:44 ?1434次閱讀
    <b class='flag-5'>緩存</b>雪崩/<b class='flag-5'>穿透</b>/擊穿的解決方案

    如何設(shè)計(jì)一個(gè)緩存系統(tǒng)?

    設(shè)計(jì)一個(gè)緩存系統(tǒng),不得不要考慮的問題就是:緩存穿透緩存擊穿與失效時(shí)的雪崩效應(yīng)。 緩存穿透
    的頭像 發(fā)表于 02-08 11:40 ?3150次閱讀

    如何在SpringBoot中解決Redis的緩存穿透等問題

    今天給大家介紹一下如何在SpringBoot中解決Redis的緩存穿透緩存擊穿、緩存雪崩的問題。
    的頭像 發(fā)表于 04-28 11:35 ?919次閱讀

    為什么GPU獲得了如此多的緩存

    不久之前,如果您想要一個(gè)內(nèi)置大量緩存的處理器,那么 CPU 是顯而易見的選擇。現(xiàn)在,即使是預(yù)算級(jí) GPU 也比幾年前的高端 CPU 配備了更多的內(nèi)存。
    的頭像 發(fā)表于 10-07 17:37 ?2418次閱讀
    為什么GPU獲得<b class='flag-5'>了如</b>此多的<b class='flag-5'>緩存</b>?

    如何使用緩存

    緩存技術(shù)認(rèn)為是減輕服務(wù)器負(fù)載、降低網(wǎng)絡(luò)擁塞、增強(qiáng)Web可擴(kuò)展性的有效途徑之一,其基本思想是利用客戶訪問的時(shí)間局部性(Temproral Locality)原理, 將客戶訪問過的內(nèi)容在Cache中
    的頭像 發(fā)表于 10-08 14:07 ?891次閱讀

    Redis緩存預(yù)熱+緩存雪崩+緩存擊穿+緩存穿透要點(diǎn)簡析

    緩存預(yù)熱就是系統(tǒng)上線后,提前將相關(guān)的緩存數(shù)據(jù)直接加載到緩存系統(tǒng)。
    的頭像 發(fā)表于 12-25 09:41 ?1139次閱讀
    Redis<b class='flag-5'>緩存</b>預(yù)熱+<b class='flag-5'>緩存</b>雪崩+<b class='flag-5'>緩存</b>擊穿+<b class='flag-5'>緩存</b><b class='flag-5'>穿透</b>要點(diǎn)簡析

    HTTP緩存頭的使用 本地緩存與遠(yuǎn)程緩存的區(qū)別

    :資源的特定版本標(biāo)識(shí),用于驗(yàn)證資源是否修改。 Last-Modified :資源最后修改時(shí)間,用于驗(yàn)證資源是否修改。 Vary :告訴緩存服務(wù)
    的頭像 發(fā)表于 12-18 09:41 ?440次閱讀

    高性能緩存設(shè)計(jì):如何解緩存偽共享問題

    在多核高并發(fā)場景下, 緩存偽共享(False Sharing) 是導(dǎo)致性能驟降的“隱形殺手”。當(dāng)不同線程頻繁修改同一緩存行(Cache Line)中的獨(dú)立變量時(shí),CPU緩存一致性協(xié)議會(huì)強(qiáng)制同步整個(gè)
    的頭像 發(fā)表于 07-01 15:01 ?65次閱讀
    高性能<b class='flag-5'>緩存</b>設(shè)計(jì):如<b class='flag-5'>何解</b>決<b class='flag-5'>緩存</b>偽共享問題
    主站蜘蛛池模板: 长岛县| 基隆市| 即墨市| 宕昌县| 格尔木市| 中超| 惠水县| 周宁县| 丰镇市| 柳州市| 婺源县| 腾冲县| 克山县| 南宁市| 黔东| 攀枝花市| 汝南县| 依兰县| 天全县| 西吉县| 石家庄市| 中牟县| 镇康县| 天镇县| 莱阳市| 三门县| 清远市| 黑水县| 武汉市| 赣州市| 共和县| 玛纳斯县| 虹口区| 邵武市| 长沙市| 水城县| 洪湖市| 上虞市| 丰台区| 三江| 时尚|