成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

系統(tǒng)緩存處理

googollee / 1994人閱讀

摘要:但是緩存和在實現(xiàn)強一致性時必然存在同步時間差。在系統(tǒng)啟動時將需要保證強一致性的數(shù)據(jù)載入緩存,所有操作和查詢只修改緩存,緩存的數(shù)據(jù)可以異步的同步到。

在使用緩存系統(tǒng)并且在系統(tǒng)存在高并發(fā)的情況下(可能要求強一致性),可能出現(xiàn)如下問題:

1. 緩存穿透
緩存穿透是指,查詢的數(shù)據(jù)并不存在于緩存系統(tǒng)中導(dǎo)致必須查詢DB的情況。
緩存穿透可能被利用作為系統(tǒng)攻擊的點。例如:重復(fù)查詢系統(tǒng)之不存在的key(不存在于緩存和DB)
解決思路:
如果查詢的key不存在于緩存系統(tǒng)中那么,在緩存系統(tǒng)中增加此key,并且將值置為null(或其他的特殊值,此值代表緩存系統(tǒng)尚未收錄),然后查詢DB并更新至緩存系統(tǒng)。如果此key不存在于系統(tǒng)中,則將此key在緩存中置為特殊值(此特殊值表示系統(tǒng)不存在此值)
2.緩存并發(fā)
緩存高并發(fā)是指,在并發(fā)重復(fù)的大量請求緩存數(shù)據(jù)時,如果緩存系統(tǒng)不存在此key(可能時攻擊也可能不是),那么將導(dǎo)致大量的重復(fù)請求首先引起緩存穿透問題,其次極大增加DB的壓力,在此場景下緩存失去了應(yīng)有作用。
緩存并發(fā)也可能被利用作為系統(tǒng)攻擊點。除了上述的緩存穿透之外,也可能導(dǎo)致DB拒絕服務(wù)。例如:發(fā)送大量DB有但是緩存沒有的數(shù)據(jù)(存在于DB不存在于緩存)
解決思路:
如果查詢的是同一key,則加鎖處理;如果查詢時不同key則隊列處理
3.緩存失效
緩存失效是指,給某些有時效性的緩存內(nèi)容設(shè)定過期時間,到達(dá)過期時間之后,對應(yīng)緩存失效了。簡單拓展,緩存內(nèi)容在沒有被及時更新也是緩存失效,一般我們需要緩存的數(shù)據(jù)在我們修改DB的時候會同步修改緩存。
如果設(shè)定緩存失效時間都是一致的,那么會導(dǎo)致,在同一時間大量緩存失效,這時候如果有大量請求請求失效緩存則造成緩存穿透和緩存并發(fā)問題。
解決思路:
控制緩存失效時間,不讓緩存在同一時間失效,失效時間對應(yīng)不同的key設(shè)置隨機時間失效,將請求分配到多個時間中減輕DB壓力
4.緩存強一致性要求
緩存強一致性是指,緩存和DB是的操作時同步的。但是緩存和DB在實現(xiàn)強一致性時必然存在同步時間差。
解決思路:
首先我們需要保證我們的緩存系統(tǒng)時高可用的。在系統(tǒng)啟動時將需要保證強一致性的數(shù)據(jù)載入緩存,所有操作和查詢只修改緩存,緩存的數(shù)據(jù)可以異步的同步到DB。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/61974.html

相關(guān)文章

  • CPU緩存刷新的誤解

    摘要:為了保證緩存的一致性,緩存控制器跟蹤每一個緩存行的狀態(tài),這些狀態(tài)的數(shù)量是有限的。用來表示在體系中響應(yīng)其他緩存的特定緩存。如今,內(nèi)存控制器的流量使用一個單獨的總線來傳輸。用于緩存段的緩存控制器記錄了哪個核心可能改變自己的緩存行。 即使是資深的技術(shù)人員,我經(jīng)常聽到他們談?wù)撃承┎僮魇侨绾螌?dǎo)致一個CPU緩存的刷新??磥磉@是關(guān)于CPU緩存如何工作和緩存子系統(tǒng)如何與執(zhí)行核心交互的一個常見誤區(qū)。本文...

    didikee 評論0 收藏0
  • 馬蜂窩推薦系統(tǒng)容災(zāi)緩存服務(wù)的設(shè)計與實現(xiàn)

    摘要:馬蜂窩推薦系統(tǒng)對于請求的平均處理時延要求在級別,時延的線保持在以內(nèi)。任務(wù)隊列與異步寫入這里我們使用了中的線程池來實現(xiàn)。三優(yōu)化方向基于和,我們在現(xiàn)有的推薦系統(tǒng)中增加了一個本地容災(zāi)緩存系統(tǒng),當(dāng)依賴服務(wù)或者應(yīng)用本身突發(fā)異常時可以返回緩存的數(shù)據(jù)。 數(shù)據(jù)庫突然斷開連接、第三方接口遲遲不返回結(jié)果、高峰期網(wǎng)絡(luò)發(fā)生抖動...... 當(dāng)程序突發(fā)異常時,我們的應(yīng)用可以告訴調(diào)用方或者用戶「對不起,服務(wù)器出了...

    Dean 評論0 收藏0
  • 馬蜂窩推薦系統(tǒng)容災(zāi)緩存服務(wù)的設(shè)計與實現(xiàn)

    摘要:馬蜂窩推薦系統(tǒng)對于請求的平均處理時延要求在級別,時延的線保持在以內(nèi)。任務(wù)隊列與異步寫入這里我們使用了中的線程池來實現(xiàn)。三優(yōu)化方向基于和,我們在現(xiàn)有的推薦系統(tǒng)中增加了一個本地容災(zāi)緩存系統(tǒng),當(dāng)依賴服務(wù)或者應(yīng)用本身突發(fā)異常時可以返回緩存的數(shù)據(jù)。數(shù)據(jù)庫突然斷開連接、第三方接口遲遲不返回結(jié)果、高峰期網(wǎng)絡(luò)發(fā)生抖動...... 當(dāng)程序突發(fā)異常時,我們的應(yīng)用可以告訴調(diào)用方或者用戶「對不起,服務(wù)器出了點問題」...

    focusj 評論0 收藏0
  • 從Java視角理解系統(tǒng)結(jié)構(gòu)(三)偽共享

    摘要:從視角理解系統(tǒng)結(jié)構(gòu)連載關(guān)注我的微博鏈接了解最新動態(tài)從我的前一篇博文中我們知道了緩存及緩存行的概念同時用一個例子說明了編寫單線程代碼時應(yīng)該注意的問題下面我們討論更為復(fù)雜而且更符合現(xiàn)實情況的多核編程時將會碰到的問題這些問題更容易犯連包作者大師的 從Java視角理解系統(tǒng)結(jié)構(gòu)連載, 關(guān)注我的微博(鏈接)了解最新動態(tài) 從我的前一篇博文中, 我們知道了CPU緩存及緩存行的概念, 同時用一個例子說...

    asce1885 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<