色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

緩存系統(tǒng)的三座大山

Linux愛好者 ? 來源:程序員大白啊 ? 2020-08-14 17:00 ? 次閱讀

1.無處不在的緩存

緩存在計算機系統(tǒng)是無處不在,在CPU層面有L1-L3的Cache,在Linux中有TLB加速虛擬地址和物理地址的轉(zhuǎn)換,在瀏覽器有本地緩存、手機有本地緩存等。

可見,緩存在計算機系統(tǒng)中有非常重要的地位,其主要作用是提高響應(yīng)速度、減少磁盤訪問等,本文主要討論在高并發(fā)系統(tǒng)中的緩存系統(tǒng)。

一句話概括緩存系統(tǒng)在高并發(fā)系統(tǒng)中的地位的話:如果高并發(fā)系統(tǒng)是烤羊肉串,那么緩存系統(tǒng)就是那一撮孜然。

2.高并發(fā)系統(tǒng)中的緩存

2.1 緩存系統(tǒng)的作用

緩存系統(tǒng)在高并發(fā)系統(tǒng)的作用很大,在某種程度上可以說沒有緩存系統(tǒng)很難支撐高并發(fā)場景。

基于機械磁盤或SSD的數(shù)據(jù)庫系統(tǒng),一般來說讀寫的速度遠慢于內(nèi)存,因此單純磁盤介質(zhì)的數(shù)據(jù)庫無法支撐很高的并發(fā),可以簡單認為緩存是保護磁盤數(shù)據(jù)庫的重要屏障。

對于一些基于LSM的存儲引擎數(shù)據(jù)庫來說,隨機寫改為順序?qū)懰俣忍嵘艽螅请S機讀仍然是個問題,所以緩存系統(tǒng)是很有必要的。

2.2 緩存系統(tǒng)訪問流程

實際場景也是讀多寫少,看看請求是如何得到響應(yīng)的,簡單看下交互流程:

請求到達之后,業(yè)務(wù)線程首先訪問緩存,如果緩存命中則返回

如果未命中則繼續(xù)請求磁盤數(shù)據(jù)庫系統(tǒng),獲取數(shù)據(jù)返回

從磁盤獲取數(shù)據(jù)后將結(jié)果回寫到緩存系統(tǒng)且增加老化時間,為下次請求做準備

以上是高并發(fā)系統(tǒng)中緩存和磁盤數(shù)據(jù)庫系統(tǒng)、客戶端請求之間的交互過程,后續(xù)的問題分析,也是基于此過程展開的。

3.緩存系統(tǒng)的三大問題

網(wǎng)絡(luò)上對于緩存三大問題的文章很多,提到的三個問題主要是:

緩存雪崩 Cache Avalanche

緩存穿透 Cache Penetration

緩存擊穿 Hotspot Invalid

對于上面的三個名詞我一直分不清楚,腦海中并沒有清晰的區(qū)別。

于是想到去谷歌看看歪果仁是怎么說的,然而英文表述就是上面的英文,基本上和漢語翻譯是一樣的,所以只能強記,太難了。

3.1 緩存雪崩問題

所謂雪崩就是原來有所支撐的冰雪,某一瞬間失去依托,瞬間涌下來。

這個場景讓我想起了2011年上映的柯南劇場版《沉默的十五分鐘》,柯南在北澤村水庫為了拯救村莊制造的雪崩:

可見雪崩確實很可怕,回到高并發(fā)系統(tǒng),如果緩存系統(tǒng)故障,大量的請求無法從緩存完成數(shù)據(jù)請求,就全量洶涌沖向磁盤數(shù)據(jù)庫系統(tǒng),導(dǎo)致數(shù)據(jù)庫被打死,整個系統(tǒng)徹底崩潰。

3.2 緩存雪崩解決方案

造成緩存雪崩的主要原因是緩存系統(tǒng)不夠高可用,因此提高緩存系統(tǒng)的穩(wěn)定性和可用性十分必要,比如對于使用Redis作為緩存的系統(tǒng)而言可以使用哨兵機制、集群化、持久化等來提高緩存系統(tǒng)的HA。

除了保證緩存系統(tǒng)的HA之外,服務(wù)本身也需要支持降級,可以借助比如Hystrix來實現(xiàn)服務(wù)的熔斷、降級、限流來降低出現(xiàn)雪崩時的故障程度。

說白了就是別讓服務(wù)徹底死掉就行,就像大雪封高速肯定不能通行了,堵車慢一些至少可以走。

3.3 緩存穿透問題

穿透形象一點就是:請求過來了 轉(zhuǎn)了一圈 一無所獲 就像穿過透明地帶一樣。

在高并發(fā)系統(tǒng)中緩存穿透,如果一個req需要請求的數(shù)據(jù)在緩存中沒有,這時業(yè)務(wù)線程就會訪問磁盤數(shù)據(jù)庫系統(tǒng),然而磁盤數(shù)據(jù)庫也沒有這個數(shù)據(jù),無奈業(yè)務(wù)線程只能白白處理一圈。

如果某時段有大量惡意的不存在的key的集中請求,那么服務(wù)將一直處理這些根本不存在的請求,導(dǎo)致正常請求無法被處理,從而出現(xiàn)問題。

舉個栗子:


拉面館的服務(wù)員和廚師不允許拒絕已經(jīng)進來的消費者,但是拉面館的經(jīng)營范圍有限。此時惡意消費者點了一只5斤的澳洲龍蝦,經(jīng)過服務(wù)員和廚師都無法響應(yīng)這個需求,此時輪流來了1000個這樣的惡意消費者,拉面館基本要歇菜了。

3.4 緩存穿透解決方案

有效甄別是否存在這個key再決定是否讀取很重要,常見的做法有:

把不存在的key寫一下null,這樣再來就相當于命中了,其實這種方法局限性很大,今天是5斤龍蝦,明天改成6斤的螃蟹,緩存系統(tǒng)和數(shù)據(jù)庫中存儲大量無用key本身是無意義的,所以一般不建議

另外一種思路,轉(zhuǎn)換為查找問題,類似于在海量數(shù)據(jù)中查找某個key是否存在,考慮空間復(fù)雜度和時間復(fù)雜度,一般選用布隆過濾器來實現(xiàn)。

布隆過濾器是個好東西,有非常多的用途,包括:垃圾郵件識別、搜索蜘蛛爬蟲url去重等,主要借助K個哈希函數(shù)和一個超大的bit數(shù)組來降低哈希沖突本身帶來的誤判,從而提高識別準確性。

布隆過濾器也存在一定的誤判,假如判斷存在可能不一定存在,但是假如判斷不存在就一定不存在,因此剛好用在解決緩存穿透的key查找場景,事實上很多系統(tǒng)都是基于布隆過濾器來解決緩存穿透問題的。

3.5 緩存擊穿問題

緩存擊穿是這樣一種情況:

由于緩存系統(tǒng)中的熱點數(shù)據(jù)都有過期時間,如果沒有過期時間就造成了主存和緩存的數(shù)據(jù)不一致,因此過期時間一般都不會太長。

設(shè)想某時刻一批熱點數(shù)據(jù)同時在緩存系統(tǒng)中過期失效,那么這部分數(shù)據(jù)就都將請求磁盤數(shù)據(jù)庫系統(tǒng)。

從描述上來看有點像微小規(guī)模的雪崩,但是對數(shù)據(jù)庫的壓力就很小了,只不過會影響并發(fā)性能,然而在多線程場景中緩存擊穿卻是經(jīng)常發(fā)生的,相反緩存穿透和雪崩頻率不如緩存擊穿,因此研究擊穿的現(xiàn)實意義更大一些。

3.6 緩存擊穿解決方案

可以采用的方案大概有幾種:

在設(shè)置熱點數(shù)據(jù)過期時間時盡量分散,比如設(shè)置100ms的基礎(chǔ)值,在此基礎(chǔ)上正負浮動10ms,從而降低相同時刻出現(xiàn)CacheMiss的key的數(shù)量。

另外一種做法是多線程加鎖,其中第一個線程發(fā)現(xiàn)CacheMiss之后進行加鎖,再從數(shù)據(jù)庫獲取內(nèi)容之后寫到緩存中,其他線程獲取鎖失敗則阻塞數(shù)ms之后再進行緩存讀取,這樣可以降低訪問數(shù)據(jù)數(shù)據(jù)庫的線程數(shù),需要注意在單機和集群需要使用不同的鎖,集群環(huán)境使用分布式鎖來實現(xiàn),但是由于鎖的存在也會影響并發(fā)效率。

一種方法是在業(yè)務(wù)層對使用的熱點數(shù)據(jù)查看是否即將過期,如果即將過期則去數(shù)據(jù)庫獲取最新數(shù)據(jù)進行更新并延長該熱點key在緩存系統(tǒng)中的時間,從而避免后面的過期CacheMiss,相當于把事情提前解決了。

緩存擊穿的解決方法都有一定的權(quán)衡,實際中根據(jù)自己的需求來解決。

緩存擊穿的影響一般來說并不會太大,或許在你的服務(wù)跑了很久之后你才意識到會有緩存擊穿問題。

4.小結(jié)

緩存系統(tǒng)無論在實際工作中還是在面試中都是熱點內(nèi)容,緩存系統(tǒng)目的是為了讓訪問又準又快,不要一味追求緩存命中率,緩存和主數(shù)據(jù)庫的數(shù)據(jù)一致性是需要重點考慮的。

總起來說,如何在保證數(shù)據(jù)正確性的前提下提高緩存命中率就是核心問題。

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

    關(guān)注

    68

    文章

    10855

    瀏覽量

    211593
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11294

    瀏覽量

    209343
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    26672

原文標題:什么是緩存系統(tǒng)三座大山

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

    HTTP緩存頭是一組HTTP響應(yīng)頭,它們控制瀏覽器和中間代理服務(wù)器如何緩存網(wǎng)頁內(nèi)容。合理使用HTTP緩存頭可以顯著提高網(wǎng)站的加載速度和性能,減少服務(wù)器的負載。 1. HTTP緩存頭概述
    的頭像 發(fā)表于 12-18 09:41 ?87次閱讀

    甲骨文規(guī)劃三座小型核電站賦能AI數(shù)據(jù)中心

    甲骨文公司近日宣布了一項重大能源戰(zhàn)略,已獲得授權(quán)建設(shè)三座小型模塊化核反應(yīng)堆,旨在為旗下龐大的AI數(shù)據(jù)中心提供清潔、穩(wěn)定的電力支持。這一創(chuàng)新舉措由公司董事長拉里·埃里森親自披露,彰顯了甲骨文在可持續(xù)發(fā)展與AI技術(shù)融合方面的前瞻視野。
    的頭像 發(fā)表于 09-19 18:18 ?606次閱讀

    什么是CPU緩存?它有哪些作用?

    CPU緩存(Cache Memory)是計算機系統(tǒng)中一個至關(guān)重要的組成部分,它位于CPU與內(nèi)存之間,作為兩者之間的臨時存儲器。CPU緩存的主要作用是減少CPU訪問內(nèi)存所需的時間,從而提高系統(tǒng)
    的頭像 發(fā)表于 08-22 14:54 ?2893次閱讀

    基于望獲實時Linux和飛騰E2000Q CPU的全國產(chǎn)工控解決方案

    隨著智能制造和工業(yè)4.0浪潮的席卷,工業(yè)生產(chǎn)對控制系統(tǒng)提出了前所未有的挑戰(zhàn)——高精度、高實時性和高可靠性的需求如同三座大山,橫亙在行業(yè)發(fā)展之路上。然而,環(huán)顧當前市場,高性能的國產(chǎn)化工業(yè)控制解決方案仍
    的頭像 發(fā)表于 08-08 13:48 ?628次閱讀

    今日看點丨AI將帶動今年全球服務(wù)器GPU產(chǎn)值破千億美元;星旗下Semes成功開發(fā)ArF-i光刻涂膠/顯影設(shè)備

    1. 臺積高雄第三座2 納米廠來了 ? 臺積電高雄第一2納米廠施工中,第二2納米廠也已啟動,第三座高雄P3廠用地17.22公頃,24日通過高雄市都市計劃委員會變更為甲種工業(yè)區(qū),未來
    發(fā)表于 06-26 11:03 ?576次閱讀

    臺積電高雄P3廠用地變更獲批,邁向第三座2nm廠建設(shè)

    近日,臺積電在高雄市的P3廠項目取得了重要進展。據(jù)可靠消息,6月24日,臺積電高雄P3廠通過了高雄市都市計劃委員會的用地變更申請,該地塊將被正式變更為甲種工業(yè)區(qū)。這一里程碑式的進展意味著,臺積電距離其第三座2nm廠的建設(shè)動工又近了一步。
    的頭像 發(fā)表于 06-26 10:21 ?1363次閱讀

    天合光能供貨的巴西三座光伏電站(Solar Park)成功并網(wǎng)運行

    近日,由天合光能供貨的巴西三座光伏電站(Solar Park)成功并網(wǎng)運行。這三座電站均位于巴西南部的巴拉那州,全部采用天合光能至尊N型720W系列組件和至尊670W組件,總裝機量達21MW,為這座熱情之都輸入更多綠色能量。
    的頭像 發(fā)表于 05-14 10:32 ?492次閱讀

    臺積電將在美國鳳凰城建設(shè)第三座芯片工廠

    立第三座芯片工廠,將其在亞利桑那州的總投資增加至 650 億美元。 第三座晶圓廠將使用 2nm 或更先進的工藝生產(chǎn)芯片,并于本世紀末開始生產(chǎn)。 美國總統(tǒng)拜登表示,這些設(shè)施將生產(chǎn)世界上最先進的芯片,促使美國有望在2030 年生產(chǎn)出全球 20% 的尖端半導(dǎo)體。 他表示,
    的頭像 發(fā)表于 04-10 16:19 ?377次閱讀

    臺積電將建第3晶圓廠 臺積電5/3nm漲定

    近日,全球半導(dǎo)體制造巨頭臺積電宣布將進一步擴大在美國的投資版圖,計劃在亞利桑那州增設(shè)第三座工廠。
    的頭像 發(fā)表于 04-09 15:03 ?687次閱讀

    臺積電擬在高雄增設(shè)兩1.4nm工廠

    臺積電已在高雄的楠梓產(chǎn)業(yè)園建立了三座2nm工廠。其中,首家工廠計劃于今年底投入使用,初期的產(chǎn)量為每月3000片芯片,之后將逐步提高到3萬片。而P2、P3廠將于明年第四季度啟動生產(chǎn)。
    的頭像 發(fā)表于 04-01 09:38 ?409次閱讀

    格力斥資百億,打造全球第二、亞洲首座全自動化合物芯片工廠

    2023年6月,珠海市環(huán)保部發(fā)布公告證實,格力電子元器件增產(chǎn)項目已經(jīng)通過審核。根據(jù)環(huán)評文件,該項目占地面積達到20萬平方米,建設(shè)周期12個月。預(yù)計將建造三座新廠房,含一制造六寸SiC芯片的生產(chǎn)線、一進行晶圓封裝測試的生產(chǎn)線,
    的頭像 發(fā)表于 03-10 09:27 ?4131次閱讀

    印度批準三座半導(dǎo)體工廠投資,金額達1.26萬億盧比

    達到2700億盧比,預(yù)計日產(chǎn)能力可達4800萬顆芯片。   而第三座封裝測試工廠則由CG Power與日本瑞薩電子、泰國Stars Microelectronics合作運營,預(yù)計每日封裝測試能力
    的頭像 發(fā)表于 03-01 09:09 ?501次閱讀

    MLCC龍頭村田三座工廠繼續(xù)停工

    據(jù)報道,作為MLCC(多層陶瓷電容器)行業(yè)的領(lǐng)軍企業(yè),村田制作所于17日發(fā)布了關(guān)于旗下工廠受日本能登半島地震影響的最新公告。在這次地震中,共有13工廠受到了不同程度的影響。
    的頭像 發(fā)表于 01-19 14:39 ?857次閱讀

    如何選擇合適的本地緩存

    小編最近在使用系統(tǒng)的時候,發(fā)現(xiàn)盡管應(yīng)用已經(jīng)使用了 redis 緩存提高查詢效率,但是仍然有進一步優(yōu)化的空間,于是想到了比分布式緩存性能更好的本地緩存,因此對領(lǐng)域內(nèi)常用的本地
    的頭像 發(fā)表于 01-18 11:19 ?845次閱讀
    如何選擇合適的本地<b class='flag-5'>緩存</b>?

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

    緩存預(yù)熱就是系統(tǒng)上線后,提前將相關(guān)的緩存數(shù)據(jù)直接加載到緩存系統(tǒng)
    的頭像 發(fā)表于 12-25 09:41 ?901次閱讀
    Redis<b class='flag-5'>緩存</b>預(yù)熱+<b class='flag-5'>緩存</b>雪崩+<b class='flag-5'>緩存</b>擊穿+<b class='flag-5'>緩存</b>穿透要點簡析
    主站蜘蛛池模板: 国产精品久久高潮呻吟无码| 红桃传媒少妇人妻网站无码抽插| 久久精品无码一区二区日韩av| 青青草原直播| 在线看无码的免费网站| 国产嫩草在线观看| 琪琪伦伦影院理论片| 在线成年av动漫电影| 国产亚洲精品线视频在线| 日本高清二区| 97在线精品视频| 久久99AV无色码人妻蜜| 色偷偷亚洲男人天堂| 99免费观看视频| 啦啦啦 中国 日本 高清 在线| 亚洲国产在线午夜视频无| 国产a级黄色毛片| 欧美精品成人久久网站| 中文字幕中文字幕永久免费| 国语自产视频在线不卡| 乌克兰女人与动ZOZO| 成片免费观看视频大全| 女人久久WWW免费人成看片| 真实的强视频免费网站| 极品色αv影院| 亚洲成熟人网站| 国产精品无码AV天天爽人妻蜜桃| 日本亚洲欧洲免费旡码| japonensis护士| 欧美人妖12p| 99re5.久久热在线视频| 猫咪最新破解版下载| 又黄又湿免费高清视频| 精子网久久国产精品| 亚洲精品一二三区-久久| 国产午夜一级淫片| 羲义嫁密着中出交尾gvg794 | 99在线视频免费观看视频| 久久日本精品国产精品| 艳鉧动漫片1~6全集在线| 黄片长版看嘛|