国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

系統緩存處理

googollee / 1939人閱讀

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61974.html

相關文章

  • CPU緩存刷新的誤解

    摘要:為了保證緩存的一致性,緩存控制器跟蹤每一個緩存行的狀態,這些狀態的數量是有限的。用來表示在體系中響應其他緩存的特定緩存。如今,內存控制器的流量使用一個單獨的總線來傳輸。用于緩存段的緩存控制器記錄了哪個核心可能改變自己的緩存行。 即使是資深的技術人員,我經常聽到他們談論某些操作是如何導致一個CPU緩存的刷新。看來這是關于CPU緩存如何工作和緩存子系統如何與執行核心交互的一個常見誤區。本文...

    didikee 評論0 收藏0
  • 馬蜂窩推薦系統容災緩存服務的設計與實現

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

    Dean 評論0 收藏0
  • 馬蜂窩推薦系統容災緩存服務的設計與實現

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

    focusj 評論0 收藏0
  • 從Java視角理解系統結構(三)偽共享

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

    asce1885 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<