Memcache是什麼?
Memcache是一個自由和開放源代碼、高性能、配置設定的記憶體對象緩存系統。用于加速動态web應用程式,減輕資料庫負載。
它可以應對任意多個連接配接,使用非阻塞的網絡IO。由于它的工作機制是在記憶體中開辟一塊空間,然後建立一個HashTable,Memcached自管理這些HashTable。
Memcached是簡單而強大的。它簡單的設計促進迅速部署,易于發展所面臨的問題,解決了很多大型資料緩存。它的API可供最流行的語言。
Memcache的知名使用者有:LiveJournal、Wikipedia、Flickr、Bebo、Twitter、Typepad、Yellowbot、Youtube 等。
Memcached又是什麼?
Memcache是該系統的項目名稱,Memcached是該系統的主程式檔案,以守護程式方式運作于一個或多個伺服器中,随時接受用戶端的連接配接操作,使用共享記憶體存取資料。
那PHP中的Memcache是什麼?
php中的所講的memcache是用于連接配接Memecached的用戶端元件。
Memcache如何安裝?
Memcached 服務端安裝:(源碼包官方網站下載下傳)
系統指令
tar xvf memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure --prefix=/usr/local/memcached
make
make install
然後就可以啟動memcached的守護程序了:
/usr/local/memcached/bin/memcached -p 11211 -l 127.0.0.1 -d -u nobody -P /var/run/memcached.pid -m 64M -c 1024
幾個參數的解釋:
-p memcached監聽的TCP端口
-l 監聽的ip位址,127.0.0.1是本機,當然也可以寫上你的伺服器IP,如:61.150.91.26,這是我伺服器的IP位址,如果你需要多個伺服器都能夠讀取這台memcached的緩存資料,那麼就必須設定這個ip
-d 以daemon方式運作,将程式放入背景
-u memcached的運作使用者,我設定的是nobody
-P memcached的pid檔案路徑
-m memcached可以使用的最大記憶體數量
-c memcached同時可以接受的最大的連接配接數
如果你希望以socket方式來通路memcached,那麼在啟動的時候就必須去掉 -l和-p參數,并加上-s參數:
-s memcached的socket檔案路徑
php中memcache擴充元件的安裝:
tar xvf memcache-3.0.3.tgz
cd memcache-3.0.3
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --enable-memcache
make
按照我的環境,編譯出來的memcache.so儲存在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 目錄下,如果你的環境不一樣,你得根據自己情況修改你的php.ini了。
接着要做的工作就是讓php加載這個擴充,編輯你的php.ini,在适當位置(通常是最後,也可以是獨立的一個ini檔案)加入如下行:
extension=memcache.so
然後重新開機你的phpfastcgi程序或者apache,運作一個phpinfo()來确認一下,正常的話你應該可以看到這個了:memcache
php-memcache的簡單使用舉例:
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1','11211');
$memcache->setCompressThreshold(20000, 0.2);
echo $memcache->getVersion();
$test = array(1,2,3,4,5,'abcde');
if($memcache->get('test')){
print_r($memcache->get('test'));
echo "\n";
echo 'cached';
}else{
$memcache->set('test',$test,0,30);
echo 'no cache';
}
?>
本文轉自leonardos51CTO部落格,原文連結:http://blog.51cto.com/leomars/395417 ,如需轉載請自行聯系原作者