memcache與memcached的區別

2021-09-03 01:28:42 字數 1486 閱讀 5936

memcache是乙個自由和開放源**、高效能、分配的記憶體物件快取系統。用於加速動態web應用程式,減輕資料庫負載。

它可以應對任意多個連線,使用非阻塞的網路io。由於它的工作機制是在記憶體中開闢一塊空間,然後建立乙個hashtable,memcache這個軟體專案一般叫memcache,但專案的主程式檔案叫memcached.exe,是靠服務端的這個守護程序管理這些hashtable。由於這個命名問題,所以很多人把這個軟體系統叫memcache,想叫成memcached也沒什麼問題!

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

可知,不同語言都有自己針對memcache的擴充套件!

對於這個記憶體快取系統,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 會讓人放心很多:

差別比較大的一點是,memcached 支援 binary protocol,而 memcache 不支援,意味著 memcached 會有更高的效能。不過,還需要注意的是,memcached 目前還不支援長連線。

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

php的memcached客戶端memcahce與memcached比較:

延伸閱讀:

windows下memcached.exe的安裝與配置

installing memcached for php 5.3 on windows 7

memcache的安裝與memcached的服務

一 安裝memcached 路徑 版本libevent 2.1.3 alpha.tar.gz 三 由於linux下預設安裝過libevent 檢視是否有libevent rpm qa grep libevent 如果版本過低 rpm e libevent 1.1a 3.2.1 nodeps 由於系統...

centOS環境下安裝與執行memcached

yum install memcachedwhereis memcached 查詢memcached的安裝路徑 usr bin memcached d m 512 l 127.0.0.1 p 10000 u root 執行 d是啟動乙個守護程序 m是分配給memcache使用的記憶體數量,單位是mb...

Xmemcached實現權重memcached節點

使用方法,與通常呼叫的唯一區別就是在建立memcachedclient的時候,memcachedclientbuilder builder new xmemcachedclientbuilder addrutil.getaddresses localhost 12000 localhost 1200...