首頁  >  文章  >  關於Memcached作原理的詳細介紹【總結】

關於Memcached作原理的詳細介紹【總結】

藏色散人
藏色散人原創
2018-09-10 17:55:282152瀏覽

本篇文章主要給大家詳細介紹關於Memcached 工作原理。大家也可以參考關注Memcached影片教學Memcached手冊

一、簡介:

Memcache是​​一個高效能的分散式的記憶體物件快取系統,透過在記憶體裡維護一個統一的巨大的hash表,它能夠用來儲存各種格式的數據,包括影像、影片、檔案以及資料庫檢索的結果等。簡單的說就是將資料呼叫到記憶體中,然後從記憶體中讀取,從而大大提高讀取速度。 Memcached是以守護程式方式運作於一個或多個伺服器中,隨時會接收客戶端的連線和操作。

二、特性:

1. Memcached中可以保存的item資料量是沒有限制的,只要記憶體足夠 。

2.Memcached單一進程最大使用內存為2G,要使用更多內存,可以分多個端口開啟多個Memcached進程 
3.最大30天的數據過期時間,設置為永久的也會在這個時間過期,常數REALTIME_MAXDELTA  
4.最大鍵長為250位元組,大於該長度無法存儲,常數KEY_MAX_LENGTH 250控制 
#5.單一item最大資料是1MB,超過1MB資料不予儲存,常數POWER_BLOCK 1048576進行控制, 
6.它是預設的slab大小 
7.最大同時連接數是200,透過 conn_init()中的freetotal進行控制,最大軟連接數是1024,透過settings.maxconns=1024 進行控制 ,跟空間佔用相關的參數:settings.factor=1.25, settings.chunk_size=48, 影響slab的資料佔用和步進方式

8.memcached是一種無阻塞的socket通信方式服務,基於libevent庫,由於無阻塞通信,對內存讀寫速度非常之快。
9.memcached分伺服器端和客戶端,可以設定多個伺服器端和客戶端,應用於分散式的服務非常廣泛。

10.memcached作為小規模的資料分散式平台是十分有效果的。

11.memcached是鍵值一一對應,key預設最大不能超過128個字 節,value預設大小是1M,也就是一個slabs,如果要存2M的值(連續的),不能用兩個slabs,因為兩個slabs不是連續的,無法在記憶體中 存儲,故需要修改slabs的大小,多個key和value進行存儲時,即使這個slabs沒有利用完,那麼也不會存放別的數據。

12.價值不高的資料放入,不然伺服器宕了,那麼資料全部遺失

三、適用場合

1.分散式應用程式。由於memcached本身是基於分散式的系統,因此特別適合大型的分散式系統。

2.資料庫前段快取。資料庫常常是網站系統的瓶頸。資料庫的大並發量訪問,常常造成網站記憶體溢出。當然我們也可以使用Hibernate的快取機制。但memcached是基於分散式的,並可獨立於網站應用程式本身,所以更適合大型網站進行應用程式的分割。

3.伺服器間資料共享。舉例來講,我們將網站的登入系統、查詢系統拆分為兩個應用,放在不同的伺服器上,並進行集群,那這個時候用戶登入後,登入資訊如何從登入系統伺服器同步到查詢系統伺服器呢?這時候,我們便可以使用memcached,登入系統將登入資訊快取起來,查詢系統便可以獲得登入信息,就像獲取本地資訊一樣。

四、不適用場合

那些不需要「分佈」的,不需要共享的,或者乾脆規模小到只有一台伺服器的應用,memcached不會帶來任何好處,相反還會拖慢系統效率,因為網路連線同樣需要資源

這篇文章有一定的參考價值,希望對大家有需要的朋友有幫助!

以上是關於Memcached作原理的詳細介紹【總結】的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn