memcache是乙個優秀的高效能分布式記憶體快取伺服器,通過快取資料庫查詢結果,減少資料庫壓力,當第一次請求時回從資料庫中查詢,返回結果讓後把資料快取到memcache中,下一次就直接從快取中讀取,memcached的伺服器客戶端通訊並不使用複雜的xml等格式,而使用簡單的基於文字行的協議。因此,通過telnet 也能在memcached上儲存資料、取得資料。為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於lru(least recently used)演算法自動刪除不使用的快取。 memcached本身是為快取而設計的伺服器,因此並沒有過多考慮資料的永久性問題,memcached儘管是「分布式」快取伺服器,但伺服器端並沒有分布式功能。各個memcached不會互相通訊以共享資訊。那麼,怎樣進行分布式呢?這完全取決於客戶端的實現。
memcached 的記憶體機制是他的記憶體片分配器,就是內部的平衡機制,通過hash演算法和lur資料管理演算法,來管理記憶體,刪除記憶體的機制是,優先使用過期的記憶體,如果滿的話就用lru演算法,就是最近未被使用的記錄中搜尋,並將其空間分配給新紀錄,
memcached的應用,在專案中多用於儲存資料庫的資料,和session中的資料,但也有一些問題,因為memcached伺服器每個是單獨的,他們之間互相不通訊,可以用addserver()來新增伺服器,但資料同步問題那,可以建兩組伺服器a ,b 用來儲存相同的資訊,當以組宕機後還可以去查另一組,同時在平時高訪問量的時候也可以負載到不同的組減輕壓力,
Memcache記憶體分配機制
1.page 頁 為記憶體分配的最小單位 memcached 的記憶體分配以page為單位,預設情況下乙個page是1m,可以通過 i引數在啟動時指定。如果需要申請記憶體時,memcached會劃分出乙個新的page並分配給需要的slab區域。page一旦被分配在重啟前不會被 或者重新分配 2.sl...
Memcache記憶體分配機制
memcached 的記憶體分配以page為單位,預設情況下乙個page是1m,可以通過 i引數在啟動時指定。如果需要申請記憶體時,memcached會劃分出乙個新的 page並分配給需要的slab區域。page一旦被分配在重啟前不會被 或者重新分配 memcached並不是將所有大小的資料都放在一...
Memcache記憶體機制與LRU
memcache的記憶體分配機制 memcache程序會預先分配一部分記憶體給slab,給slab分配的記憶體也叫page page的預設大小是1m 每個page下面會有若干個chunk chunk預設大小96b 而資料就會封裝成item儲存在chunk裡面,若干個大小相同的chunk稱為slab ...