久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      memcached架構(gòu)及緩存策略

      —————————————-概述—————————————-

      Memcached是一套高性能分布式內(nèi)存對象緩存服務器。它將所有的數(shù)據(jù)統(tǒng)統(tǒng)保存在內(nèi)存中,在內(nèi)存中會維護一個巨大的hash表,支持任意存儲類型的數(shù)據(jù),很多網(wǎng)站通過Memcached提高網(wǎng)站的訪問速度,尤其是對于大型的需要頻繁訪問的網(wǎng)站,減少查詢效率,提高查詢速度

      —————————————-架構(gòu)—————————————-

      memcached架構(gòu)及緩存策略

      C/S架構(gòu):

      服務端:Memcached服務端,通過C語言編寫而成

      客戶端:Memcached API客戶端,可以通過任何語言編寫,如php、py等

      特點:

      1.為了提高性能,memcached中保存的數(shù)據(jù)都存儲在memcached內(nèi)置的內(nèi)存空間中:由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟memcached、重啟操作系統(tǒng)會導致全部數(shù)據(jù)消失

      2.基于libevent的事件處理:libevent是個程序庫,它將Linux的epoll、BSD類操作系統(tǒng)的kqueue等事件處理功能封裝成統(tǒng)一的接口;即使對服務器的連接數(shù)增加,也能發(fā)揮O(1)的性能;memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統(tǒng)上發(fā)揮其高性能

      3.簡單key/value存儲:服務器不關(guān)心數(shù)據(jù)本身的意義及結(jié)構(gòu),只要是可序列化數(shù)據(jù)即可;存儲項由“鍵、過期時間、可選的標志及數(shù)據(jù)”四個部分組成

      4.功能的實現(xiàn)一半依賴于客戶端,一半基于服務器端:客戶負責發(fā)送存儲項至服務器端、從服務端獲取數(shù)據(jù)以及無法連接至服務器時采用相應的動作;服務端負責接收、存儲數(shù)據(jù),并負責數(shù)據(jù)項的超時過期

      —————————————-緩存策略—————————————-

      Slab Allocator機制基本原理:

      按照預先規(guī)定的大小,將分配的內(nèi)存分割成特定長度的塊chunk,并把尺寸相同的塊分成組,以完全解決內(nèi)存碎片問題。但由于分配的是特定長度的內(nèi)存,因此無法有效利用分配的內(nèi)存。比如將100字節(jié)的數(shù)據(jù)緩存到128字節(jié)的chunk中,剩余的28字節(jié)就浪費了;按照預先規(guī)定的大小,將分配的內(nèi)存分割成特定長度的內(nèi)存塊chunk,再把尺寸相同的內(nèi)存塊分層組chunk集合,這些內(nèi)存不會釋放,可以反復利用

      memcached架構(gòu)及緩存策略
      Slab Allocation機制角色:

      1.chunk為固定大小的內(nèi)存空間,默認為96Byte

      2.page對應實際的物理空間,1個page為1M

      3.同樣大小的chunk集合又稱為slab

      memcached架構(gòu)及緩存策略
      客戶端選擇slab機制:

      下面說明memcached如何針對客戶端發(fā)送的數(shù)據(jù)選擇slab并緩存到chunk中;memcached根據(jù)收到的數(shù)據(jù)的大小,選擇最適合數(shù)據(jù)大小的slab; memcached中保存著slab內(nèi)空閑chunk的列表,根據(jù)該列表選擇chunk, 然后將數(shù)據(jù)緩存于其中

      memcached架構(gòu)及緩存策略
      內(nèi)存釋放機制:

      Laxzy Expiration:

      Memcached每個被存取的對象都有唯一的標識符key,存取操作均通過key進行,例如可以把后端數(shù)據(jù)庫中的select操作提取出來,然后對相應的SQL進行hash計算得出key,然后以這個key在memcached中查找數(shù)據(jù),如果數(shù)據(jù)不存在,說明其尚未被寫入緩存中,并設(shè)置一個失效時間(比如1小時),在失效時間內(nèi)的數(shù)據(jù)都是從緩存中提取,這樣就有效地減少了數(shù)據(jù)庫的壓力

      Least Recently Used(LRU):

      刪除“最近最少使用”的記錄的機制;當memcached的內(nèi)存空間不足時,從最近未被使用的記錄中搜索,并將其空間分配給新的記錄;-M 參數(shù)禁止LRU功能,內(nèi)存用盡時,memcached會返回錯誤,不建議使用memcached -M -m 1024

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號