轉自www.5iphp.com
Memcache函數庫是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的記憶體資料的臨時存放地區,在分布式的時候作用體現的非常明顯,否則不建議使用。
memcache函數所有的方法列表如下:
參考http://www.php.net/manual/zh/function.Memcache-add.php
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 -對一個已有的key進行覆寫操作
Memcache::set - 添加一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold - 對大於某一大小的資料進行壓縮
Memcache::setServerParams - 在運行時修改伺服器的參數
Memcache::add用法
bool Memcache::add ( string $key , mixed
$var [, int $flag [, int $expire ]] )
說明:
如果$key不存在的時候,使用這個函數來儲存$var的值。功能相同的函數是memcache_add()。
參數:
$key :將要儲存的索引值。
$var :儲存的值,字元型和整型會按原值儲存,其他類型自動序列化以後儲存。
$flag:是否用MEMCACHE_COMPRESSED來壓縮儲存的值,true表示壓縮,false表示不壓縮。
$expire:儲存值的到期時間,如果為0表示不會到期,你可以用unix時間戳記或者描述來表示從現在開始的時間,但是你在使用秒數表示的時候,不要超過2592000秒 (表示30天)。
傳回值:
如果成功則返回 TRUE,失敗則返回 FALSE。如果$key值已經存在,則會返回FALSE。 其他情況下Memcache::add()的用法類似於Memcache::set()。
例子:
<?php
$memcache_obj = memcache_connect("localhost", 11211);
/* 面向過程API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);
/* 物件導向API */
$memcache_obj->add('var_key', 'test variable', false, 30);
?>
Memcache::addServer用法
bool Memcache::addServer ( string $host [, int
$port [, bool $persistent [, int $weight [, int $timeout [, int
$retry_interval [, bool $status [, callback $failure_callback ]]]]]]] )
說明:
添加一個可供使用的伺服器位址到串連池中,串連用Memcache::addServer開啟,指令碼執行完後自動關閉,或者可以用Memcache::close()手動關閉。相同函數是memcache_add_server()。
當用這個方法的時候(相對於Memcache::connect()和 Memcache::pconnect()方法),網路連接只有等需要的時候才會建立,因此不會因為增加很多的伺服器到串連池而增加系統負擔,因為很多伺服器可能沒有使用。
故障恢複會發生在這個方法執行的任何階段,只要其他的伺服器是正常的,這些串連請求的失敗使用者不會注意到。任何一種socket或者memcached伺服器級的錯誤可以觸發故障恢複。正常的用戶端錯誤比如增加一個存在的索引值不會引發故障恢複。
參數:
$host伺服器的地址
$port伺服器連接埠
$persistent是否是一個持久串連
$weight這台伺服器在所有伺服器中所佔的權重
$timeout串連的期間
$retry_interval串連重試的間隔時間,預設為15,設定為-1表示不進行重試
$status控制伺服器的線上狀態
$failure_callback允許設定一個回掉函數來處理錯誤資訊。
傳回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 物件導向API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);
/* 面向過程 API */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);
?>
Memcache::close用法
bool Memcache::close ( void )
說明:
關閉memcache伺服器串連。這個函數不會關閉長串連,長串連只有在web伺服器關閉或者重啟的時候才會關閉。相同的函數memcache_close()
傳回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 面向過程 API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
執行一些代碼..
*/
memcache_close($memcache_obj);
/* 物件導向 API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
執行一些代碼..
*/
$memcache_obj->close();
?>
Memcache::connect用法
bool Memcache::connect ( string $host [, int
$port [, int $timeout ]] )
說明:
開啟memcached伺服器串連,建立一個到memcached伺服器的串連,用Memcache::connect開啟的串連會在指令碼執行完畢後自動關閉。你也可以用Memcache::close()去關閉串連。相同的函數是memcache_connect()。
參數:
$host:指向memcached正在收聽的連結的主機,這個參數會有另一種特殊的串連方式unix:///path/to/memcached.sock,即用unix的網域名稱sockets,這種情況下,連接埠必須設定為0
$port:指向memcached正在收聽的連結的連接埠,用unix的網域名稱sockets的情況下,連接埠必須設定為0
$timeout:用於串連守護進程的秒數,當你改變預設的1秒的值的時候,你需要考慮一下,如果你的串連太慢的話,你可能會失去緩衝的優勢。
傳回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 面向過程 API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* 物件導向 API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
?>