一、簡介
首先說說memcached的由來吧,memcache由Danga Interactive這家公司開發,這家公司的口號是“We make cool stuff”。最早是爲了加速LiveJournal.com這個網站。這個網站可以支持超過2千萬個動態頁面,每天有超過1百萬的用戶訪問網站服務器和數據庫。
memcached 是由c語言開發的,免費的,開源的,高性能的,分佈式內存對象緩存系統。
memcached 適用於什麼場合呢:Memcached是“分佈式”的內存對象緩存系統,那麼就是說,那些不需要“分佈”的,不需要共享的,或者乾脆規模小到只有一臺服務器的應 用,memcached不會帶來任何好處,相反還會拖慢系統效率,因爲網絡連接同樣需要資源,即使是UNIX本地連接也一樣。 在我之前的測試數據中顯示,memcached本地讀寫速度要比直接PHP內存數組慢幾十倍,而APC、共享內存方式都和直接數組差不多。可見,如果只是 本地級緩存,使用memcached是非常不划算的。
我們可以通過這個圖加強理解:
二、安裝步驟
1、服務器端安裝
我寫下我這裏的服務器環境供大家參考:
lighttpd-1.4.28
PHP 5.3.6
a、首先需要安裝libevent
下載tar包: wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz &
編譯安裝:
- >tar -zxvf libevent-1.4.14b-stable.tar.gz
- >cd libevent-1.4.14b-stable
- >./configure //默認裝到/usr/lib/下
- >make
- >make install
b、 安裝memcache
下載地址:http://code.google.com/p/memcached/downloads/list
我下載的是:memcached-1.4.5.tar.gz
編譯安裝:
- >tar -zxvf memcached-1.4.5.tar.gz
- >cd memcached-1.4.5
- >./configure
- >make
- >make install
2、服務器端運行
運行更簡單,你只需要在安裝memcached的目錄下鍵入:
- >./memcached -d -m 10 -u root -l 127.0.0.1 -p 11210 -c 256 -P /tmp/memcached.pid
-d 以守護程序(daemon)方式運行 memcached。
-u 指定用戶,如果當前爲 root 的話,需要使用此參數指定用戶。
-m 設置 memcached 可以使用的內存大小,單位爲Mb,缺省是 64 MB;
-l 設置監聽的 IP 地址,如果是本機的話,通常可以不設置此參數;
-p 設置監聽的端口,默認爲 11211,所以也可以不設置此參數;(此處不設置,測試後發現無法連接)
-c 設置最大運行的併發連接數,默認是1024
-P 設置保存Memcache的pid文件
3、簡單的操作memcached
停止:
- >kill `cat /tmp/memcached.pid`
查看memcached監聽的ip和端口:
a、首先需要安裝libmemcached
爲啥需要libmemcached 呢,因爲在php中memcached的使用需要依賴於libmemcached,也就是說libmemcached提供了使用memcached的方法。
下載地址:https://launchpad.net/libmemcached/+download
我這裏下載的版本是:libmemcached-0.53.tar.gz
安裝編譯過程:
- >tar -zxvf libmemcached-0.53.tar.gz
- >cd libmemcached-0.53
- >./configure
- >make
- >make install
b、安裝php的memcached擴展
下載:wget http://pecl.php.net/package/get/memcached-1.0.2.tgz
安裝:
- >tar -zxvf memcached-1.0.2.tgz
- >cd memcached-1.0.2
- >./configure --with-php-config=/usr/local/php/bin/php-config
- >make
- >make install
在php.ini中新增配置內容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = memcache.so
從新啓動lighttpd
5、運行和測試
a、命令行下:
./php -m
你將會看到:memcached
b、執行程序:
- <?php
- $m = new Memcached();
- $m->addServer('127.0.0.1', 11211);
- $m->set('foo', 200);
- var_dump($m->get('foo'));
- ?>
得到結果:
int(200)
好啦,至此memcached基本架設完成了,如果有啥問題或者有啥偶說的不對的歡迎來聯繫偶
參考:
http://www.ibm.com/developerworks/cn/opensource/os-memcached/index.html
http://hi.baidu.com/yts_dayou/blog/item/8999c5f92ff2b403d8f9fdcd.html
在這裏非常感謝上面兩位