memcache與memcached的區別


Memcache是一個軟件

Memcache是一個自由和開放源代碼、高性能、分配的內存對象緩存系統。用於加速動態web應用程序,減輕數據庫負載。

它可以應對任意多個連接,使用非阻塞的網絡IO。由於它的工作機制是在內存中開辟一塊空間,然后建立一個HashTable,Memcache這個軟件項目一般叫Memcache,但項目的主程序文件叫memcached.exe,是靠服務端的這個守護進程管理這些HashTable。由於這個命名問題,所以很多人把這個軟件系統叫memcache,想叫成memcached也沒什么問題!

PHP有兩個針對上述軟件的PECL擴展:一個叫memcache,一個叫memcached

memcache擴展是完全在PHP框架內開發的,memecached擴展是使用libmemcached的。從手冊上看,memcached 會比 memcache 多幾個方法,使用方式上都差不多,具體區別稍后再談!

這樣大家應該明白了吧,下面畫了一個圖幫助理解:

可知,不同語言都有自己針對Memcache的擴展!

PHP中memcache擴展和memcached擴展的區別

對於這個內存緩存系統,PHP有兩個擴展,分別是memcache和memcached擴展。而memcached和memcache的守護進程 memcached 同名,比較容易引起混淆,甚至提到memcached,有些人第一想到的是后台的守護進程,這里還是有必要分析一下兩者之間的區別,以下觀點僅是個人觀點,希望朋友進行補充和更正。

首先我們可以從php官方手冊上可以清晰的看到兩者的區別:

memcache是完全在PHP框架內開發的,memecached是使用libmemcached的。從手冊上看,memcached 會比 memcache 多幾個方法,使用方式上都差不多。

memcache是原生實現的,但是使用libmemcached的memached只支持OO接口,而 memcache則是OO和非OO兩套接口並存,以后隨着memcached服務器端的改進,這個lib也必定會馬上跟進的。而memcache卻不一定能做到按時跟進。

memcached,還有個非常稱贊的地方,就是flag不是在操作的時候設置了。而是有一個統一的setOption()。memcached 實現了更多的 memcached 協議(畢竟是基於 libmemcached 庫的)。

這里有另外一個對比表,很明顯,用 memcached 會讓人放心很多:http://code.google.com/p/memcached/wiki/PHPClientComparison

差別比較大的一點是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 會有更高的性能。不過,還需要注意的是,memcached 目前還不支持長連接。

PHP針對Memcache軟件的memcache擴展:

PHP針對Memcache軟件的memcached擴展:

(注意:在Unix/Linux下安裝需要先安裝libevent,詳細安裝個系統稍有差異,安裝PHP的memcached擴展需要先安裝libmemcached,具體各種軟件的安裝方法在此不詳述,大家自己google一下即可)

PHP的memcached客戶端memcahce與memcached比較:http://code.google.com/p/memcached/wiki/PHPClientComparison

Windows下memcached.exe的安裝與配置

Installing Memcached for PHP 5.3 on Windows 7


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM