memcache和memcached
阿新 • • 發佈:2018-05-16
memcache memcached 區別 服務端
服務端就是memcached,是C語言寫的,直接安裝即可。
客戶端
如果要連接memcached服務端,需要在客戶端安裝前先安裝所依賴的操作庫libmemcache和libmemcached。
在這裏說一說libmemcache和libmemcached區別
1)先有libmemcache,後有libmemcached
2)前者開發使用率比較高
3)libmemcached使用比較安全,並且內存消耗小,理論上比libmemcache更好
客戶端:
這裏以php連接memcached服務端的客戶端為例:memcache和memcached
這兩者都是php的擴展,都是有php官方來維護的,但是有區別:
1)基於的操作庫不同,memcache是基於ibmemcache開發的(原生的),memcached擴展是基於libmemcached庫開發的,支持cas操作,cas操作就是多個線程並發修改同一個key值時能進行處理。
2)mc支持面向對象和面向過程兩套接口操作服務端。而mcd擴展只支持面向對象方式操作
3)memcached支持Binary Protocol,而memcache不支持。還是庫的不同導致。理論上這意味著memcached會有更高的性能。
通過$m->setOption(Memcached::OPT_BINARY_PROTOCOL,true) 設置二進制協議。
目前大部分用戶還是使用文本協議,比較簡單穩定。實踐中使用二進制的還是比較少。
共同點:mcd擴展提供session處理模塊:provides a session handler
在靜態編譯到php中時使用選項 --disable-memcache-session 可以關閉memcache的session 支持(默認時開啟的)
安裝
這裏不提如何安裝擴展的內容,只提安裝過程中的註意事項:
編譯memcache和memcached這兩個擴展的時候,都需要指定libmemcached庫或libmemcache庫的的安裝路徑的。所以預先安裝好libmemcached(memcache擴展依賴的是libmemcache庫)是編譯這個擴展的先決條件。要記得先編譯安裝好。如下指定安裝目錄用--with-libmemcached-dir=DIR 來指定路徑。這個路徑就是安裝libmemcached時指定的prefix的值(prefix是指定安裝目錄)
如果沒有指定這個路徑項,就會去這些庫的默認標準安裝目錄找(我不知道去×××),所以最好是指定庫的位置來安裝(可控性強,以後遇到問題方便排查原因,比如以前編譯php使用pcre擴展,最好使用php引擎內置的pcre庫,使用linux系統上面的,容易出現編碼支持問題)。
服務端就是memcached,是C語言寫的,直接安裝即可。
yum install libevent libevent-devel -y cd /usr/local/src/ wget http://memcached.org/files/old/memcached-1.4.15.tar.gz tar xf memcached-1.4.15.tar.gz cd memcached-1.4.15 ./configure --prefix=/usr/local/memcaced make -j 8 make install /usr/local/memcached/bin/memcached -d -m 1024 -c 1024 -u www
如果要連接memcached服務端,需要在客戶端安裝前先安裝所依賴的操作庫libmemcache和libmemcached。
在這裏說一說libmemcache和libmemcached區別
1)先有libmemcache,後有libmemcached
2)前者開發使用率比較高
3)libmemcached使用比較安全,並且內存消耗小,理論上比libmemcache更好
客戶端:
這裏以php連接memcached服務端的客戶端為例:memcache和memcached
這兩者都是php的擴展,都是有php官方來維護的,但是有區別:
1)基於的操作庫不同,memcache是基於ibmemcache開發的(原生的),memcached擴展是基於libmemcached庫開發的,支持cas操作,cas操作就是多個線程並發修改同一個key值時能進行處理。
3)memcached支持Binary Protocol,而memcache不支持。還是庫的不同導致。理論上這意味著memcached會有更高的性能。
通過$m->setOption(Memcached::OPT_BINARY_PROTOCOL,true) 設置二進制協議。
目前大部分用戶還是使用文本協議,比較簡單穩定。實踐中使用二進制的還是比較少。
共同點:mcd擴展提供session處理模塊:provides a session handler
在靜態編譯到php中時使用選項 --disable-memcache-session 可以關閉memcache的session 支持(默認時開啟的)
這裏不提如何安裝擴展的內容,只提安裝過程中的註意事項:
編譯memcache和memcached這兩個擴展的時候,都需要指定libmemcached庫或libmemcache庫的的安裝路徑的。所以預先安裝好libmemcached(memcache擴展依賴的是libmemcache庫)是編譯這個擴展的先決條件。要記得先編譯安裝好。如下指定安裝目錄用--with-libmemcached-dir=DIR 來指定路徑。這個路徑就是安裝libmemcached時指定的prefix的值(prefix是指定安裝目錄)
如果沒有指定這個路徑項,就會去這些庫的默認標準安裝目錄找(我不知道去×××),所以最好是指定庫的位置來安裝(可控性強,以後遇到問題方便排查原因,比如以前編譯php使用pcre擴展,最好使用php引擎內置的pcre庫,使用linux系統上面的,容易出現編碼支持問題)。
memcache和memcached