【memcache快取專題(3)】PHP-memcache擴充套件的安裝以及使用

菜問發表於2015-12-22

安裝PHP-memcache擴充套件和安裝其他PHP擴充套件的步驟是一樣的。

安裝

step 1:搜尋下載擴充套件 http://pecl.php.net/package/memcache

step 2:

gzip -d memcache-2.2.6.tgz
tar xvf memcache-2.2.6.tar
cd memcache-2.2.6
/usr/local/php/bin/phpize #可以先locate查詢一下php所在的路徑
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
make && make install

step end:

# 通過step2的安裝獲得以下擴充套件路徑
Installing shared extensions:     /usr/lib/php/modules/

# 寫進PHP.INI中
extension_dir = "/usr/lib/php/modules/"
extension=memcache.so
#或者直接

PHP操作

該擴充套件是官方擴充套件,所以在手冊裡面有以下方法的,但我們一般都不會直接使用,都要進行封裝後使用,方面後續的擴充套件,比如一些函式回撥處理

<?php 
#初始化
$mem = new Memcache();
$mem -> connect("127.0.0.1",11211);

##### 新增 #####
$mem -> add(`name`,`zxg`,0,1000);
/*
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
$flag:為0時不壓縮,為MEMCACHE_COMPRESSED標記對資料進行壓縮(使用zlib)。 
*/

$mem -> add(`int`,888,0,1000);

$mem -> add(`bool`,true,0,1000);
/*
如果放入的是布林值,當為false的時候,get出來是空字串,當為true的時候get出來為1
*/

$mem -> add(`arr`,array(`zz`,`xx`,`gg`),MEMCACHE_COMPRESSED,1000);
/*
陣列比較大的時候可以考慮一下用壓縮
*/

/*
1.另外,在放入物件的時候,要注意:放入或取出時,這個定義物件的類必須要被載入,才能完全的取出;

2.資源型別放不進去;

3.在實際開發使用中,一般存入的key的名稱都是唯一的id號;
*/

##### 更新 #####
$mem -> set(`arr`,`這是一個陣列`,0,600);
/*
同add的引數一樣,在有這個name時為更新,沒有這個name時為增加
*/

$mem -> replace(`arr`,`new arr`,0,80);
/*
同set的引數一樣,不過必須要有name值時才有效
*/

$mem -> increment(`int`,2); //增加2;沒有第二引數的話預設為1;

$mem -> decrement(`int`); //減少,同上

##### 刪除 #####
$mem -> delete(`int`);
/*
bool Memcache::delete ( string $key [, int $timeout = 0 ] )
如果引數timeout指定,該元素會在timeout秒後失效
*/

$mem -> flush();//清空


##### 讀取 #####
$result = $mem -> get(`int`);
/*
string Memcache::get ( string $key [, int &$flags ] )  獲取不到就返回false;

array Memcache::get ( array $keys [, array &$flags ] )
*/

$result = $mem -> get(array(`name`,`int`,`bool`,`arr`)); //分別取多個的key的值

echo `<pre>`;
print_r($result);
echo `</pre>`; 
exit;
?>  

相關文章