緩存系列文章--1.緩存的一些基本常識

轉載請註明出處:http://carlosfu.iteye.com/blog/2269678

一、基本概念

  1. Cache(緩存): 從cpu的一級和二級緩存、Internet的DNS、到瀏覽器緩存都可以看做是一種緩存。

    維基百科: 寫道

    a store of things that will be required in the future, and can be retrieved rapidly.
    (存貯數據(使用頻繁的數據)的臨時地方,因爲取原始數據的代價太大了,所以我可以取得快一些)

    這裏寫圖片描述

  2. Cache hit(緩存命中)(下圖左)
  3. Cahe miss(緩存未命中): 與Cache hit相反(下圖右)
    這裏寫圖片描述
  4. 緩存算法:緩存容量超過預設,如何踢掉“無用”的數據。

    例如:LRU(Least Recently Used) FIFO(First Input First Output)Least Frequently Used(LFU) 等等

  5. System-of-Record(真實數據源):

    例如關係型數據庫、其他持久性系統等等。
    也有英文書叫做authority data(權威數據)

  6. serialization-and-deserialization(序列化與反序列化):可以參考:序列化與反序列化(美團工程師寫的,非常棒的文章)

    後面也有單獨文章去分析。
    這裏寫圖片描述

  7. Scale Up (垂直擴容) 和 Scale out (水平擴容)
    驢拉車,通常不是把一頭驢養壯(有極限),而通常是一羣驢去拉(當然每個個體也不能太差)。
    這裏寫圖片描述
    服務器也是一樣的道理,至少互聯網是這樣:
    這裏寫圖片描述

  8. Write-through 和 write-behind
    這裏寫圖片描述
    9.阿姆而達定律:用於計算緩存加速比

二、緩存的種類或者類型

  1. LocalCache(獨立式): 例如Ehcache、BigMemory Go

    (1)、緩存和應用在一個JVM中。
    (2)、緩存間是不通信的,獨立的。
    (3)、弱一致性。
    這裏寫圖片描述

  2. Standalone(單機):
    (1)、緩存和應用是獨立部署的。
    (2)、緩存可以是單臺。(例如memcache/redis單機等等)
    (3)、 強一致性
    (4)、無高可用、無分佈式。
    (5)、跨進程、跨網絡
    這裏寫圖片描述

  3. Distributed(分佈式):例如Redis-Cluster, memcache集羣等等
    (1)、緩存和應用是獨立部署的。
    (2)、緩存可以是單臺。(例如memcache/redis單機等等)
    (3)、 強一致性
    (4)、無高可用、無分佈式。
    (5)、跨進程、跨網絡
    這裏寫圖片描述

  4. Replicated(複製式): 緩存數據時同時存放在多個應用節點的,數據複製和失效的事件以同步或者異步的形式在各個集羣節點間傳播。(也是弱一致性)

    這種用的不太多。

三、數據層訪問速度:(作爲開發人員要記住這些量級)

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章