手冊說明:

Memcached是什么?
Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協議與守護進程通信。
Memcached有什么特征?
memcached作為高速運行的分布式緩存服務器,具有以下的特點。· 協議簡單· 基于libevent的事件處理· 內置內存存儲方式· memcached不互相通信的分布式協議memcached的服務器客戶端通信并不使用復雜的XML等格式,而使用簡單的基于文本行的協議。因此,通過telnet也能在memcached上保存數據、取得數據。下面是例子。$ telnet localhost 11211
Trying 127.0.0.1
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3 (保存命令)
bar (數據)
STORED (結果)
get foo (取得命令)
VALUE foo 0 3 (數據)
bar (數據)
事件處理libevent是個程序庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的接口。即使對服務器的連接數增加,也能發揮O(1)的性能。memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統上發揮其高性能。關于事件處理這里就不再詳細介紹,可以參考Dan Kegel的The C10K Problem。存儲方式為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。由于數據僅存在于內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。另外,內容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設計的服務器,因此并沒有過多考慮數據的永久性問題。通信分布式memcached盡管是“分布式”緩存服務器,但服務器端并沒有分布式功能。各個memcached不會互相通信以共享信息。那么,怎樣進行分布式呢?這完全取決于客戶端的實現。本文也將介紹memcached的分布式。
附加資料
Memcached官網:http://memcached.org/
Memcached教程:http://www.vxbq.cn/s/memcached/
Memcached下載:http://memcached.org/downloads