@安裝memcache
#wget http://pecl.php.net/get/memcache-2.2.6.tgz
#tar zxvf memcache-2.2.6.tgz
# cd memcache-2.2.6
#/usr/local/webserver/php/bin/phpize
#./configure --with-php-config=/usr/local/webserver/php/bin/php-config
#make
#make install
顯示如下信息時為安裝成功:
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/
#vi /usr/local/webserver/php/lib/php.ini
查找extension_dir = "./",去掉分號,並改為
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"
在extension_dir下面加上 extension = "memcache.so"
保存
#killall php-fpm
#/usr/local/webserver/php/sbin/php-fpm 啟動
查看phpinfo中是否有memcache一項,有則成功
@安裝memcached(需首先安裝libevent)
#沒有livevent可 yum install libevent-devel
#wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
#tar -zxvf memcached-1.4.10.tar.gz
#cd memcached-1.4.10
#./configure --prefix=/usr/local/webserver/memcached --with-libevent=/usr/
#make
#make install
檢查是否安裝成功 #ls -al /usr/local/bin/mem* 顯示/usr/local/bin/memcached即成功
啟動memcached服務, 這里分配32M內容,端口為12000
#/usr/local/webserver/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 12000 -u root -P /tmp/memcached.pid 無提示則啟動成功
#連接參數
-p 監聽端口
-l 連接的IP地址,默認是本機
-d start啟動memecache服務
-d restart重啟
-d stop|shutdown關閉服務
-d install 安裝
-d uninstall 卸載
-u 以身份運行僅在root下有效
-m 最大內存使用,單位MB,默認64MB,最大2G
-M 內存耗盡時返回錯誤
-c 最大同時連接數量,默認是1024
-f 塊大小增長因為,默認是1.25
-n 最小分配空間,key+value+flags默認48
-h 顯示幫助
Memcache環境測試:
運行下面的php文件,如果有輸出This is a test!,就表示環境搭建成功。
$mem = new Memcache;
$mem->connect("127.0.0.1", 12000);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
//連接
$mem = new Memcache;
$mem->connect("127.0.0.1", 12000);
//保存數據
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."
";
//替換數據
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "
";
//保存數組
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "
";
//刪除數據
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "
";
//清除所有數據
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "
";
//關閉連接
$mem->close();
?>
Memcache面向對象的常用接口包括:
Memcache::add — 添加一個值,如果已經存在,則返回false
Memcache::addServer — 添加一個可供使用的服務器地址
Memcache::close — 關閉一個Memcache對象
Memcache::connect — 創建一個Memcache對象
memcache_debug — 控制調試功能
Memcache::decrement — 對保存的某個key中的值進行減法操作
Memcache::delete — 刪除一個key值
Memcache::flush — 清除所有緩存的數據
Memcache::get — 獲取一個key值
Memcache::getExtendedStats — 獲取進程池中所有進程的運行系統統計
Memcache::getServerStatus — 獲取運行服務器的參數
Memcache::getStats — 返回服務器的一些運行統計信息
Memcache::getVersion — 返回運行的Memcache的版本信息
Memcache::increment — 對保存的某個key中的值進行加法操作
Memcache::pconnect — 創建一個Memcache的持久連接對象
Memcache::replace — R對一個已有的key進行覆寫操作
Memcache::set — 添加一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold — 對大於某一大小的數據進行壓縮
Memcache::setServerParams — 在運行時修改服務器的參數