PHP緩衝技術:memcache函數詳解之三

來源:互聯網
上載者:User

 

轉自www.5iphp.com

Memcache::getVersion

string Memcache::getVersion ( void )

 

說明:

返回啟動並執行Memcache的版本資訊。相同函數memcache_get_version()

 

傳回值:

成功返回伺服器的版本資訊,失敗的時候返回false。

 

例子:

<?php

/* 物件導向 API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* 面向過程 API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

 

 

Memcache::increment

int Memcache::increment ( string $key [, int
$value ] )

對儲存的某個key中的值進行加法操作

用法參考Memcache::decrement

 

 

Memcache::pconnect

bool Memcache::pconnect ( string $host [, int
$port [, int $timeout ]] )

說明:

建立一個Memcache的持久連線物件

用法與Memcache::connect()相似,不同點地方是Memcache::pconnect是建立的持久串連。這個串連在指令碼執行完或者Memcache::close()函數運行也不會被關閉。與它相同的函數是memcache_pconnect()

 

參數:

$host:指向memcached正在收聽的連結的主機,這個參數會有另一種特殊的串連方式unix:///path/to/memcached.sock,即用unix的網域名稱sockets,這種情況下,連接埠必須設定為0

$port:指向memcached正在收聽的連結的連接埠,用unix的網域名稱sockets的情況下,連接埠必須設定為0

$timeout:用於串連守護進程的秒數,當你改變預設的1秒的值的時候,你需要考慮一下,如果你的串連太慢的話,你可能會失去緩衝的優勢。

 

傳回值:

如果成功則返回 TRUE,失敗則返回 FALSE

<?php

/* 面向過程 API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* 物件導向 API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

 

 

Memcache::replace

bool Memcache::replace ( string $key , mixed
$var [, int $flag [, int $expire ]] )

說明:

對一個已有的key進行覆寫操作。相同函數是memcache_replace()

 

參數:

$key :將要儲存的索引值。

$var :儲存的值,字元型和整型會按原值儲存,其他類型自動序列化以後儲存。

$flag:是否用MEMCACHE_COMPRESSED來壓縮儲存的值,true表示壓縮,false表示不壓縮。

$expire:儲存值的到期時間,如果為0表示不會到期,你可以用unix時間戳記或者描述來表示從現在開始的時間,但是你在使用秒數表示的時候,不要超過2592000秒 (表示30天)。

 

傳回值:

如果成功則返回 TRUE,失敗則返回 FALSE。如果$key值已經存在,則會返回FALSE。

 

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* 面向過程 API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* 物件導向 API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

 

 

Memcache::set

bool Memcache::set ( string $key , mixed
$var [, int $flag [, int $expire ]] )

說明:

添加一個值,如果已經存在,則覆寫。相同函數是memcache_set()

 

參數:

$key :將要儲存的索引值。

$var :儲存的值,字元型和整型會按原值儲存,其他類型自動序列化以後儲存。

$flag:是否用MEMCACHE_COMPRESSED來壓縮儲存的值,true表示壓縮,false表示不壓縮。

$expire:儲存值的到期時間,如果為0表示不會到期,你可以用unix時間戳記或者描述來表示從現在開始的時間,但是你在使用秒數表示的時候,不要超過2592000秒 (表示30天)。

 

傳回值:

如果成功則返回 TRUE,失敗則返回 FALSE。

 

例子:

 

/* 物件導向 API */

$memcache_obj = new Memcache;

/* 串連到memcached伺服器 */
$memcache_obj->connect('memcache_host'11211);

/*
給鍵'var_key'設定值使用壓縮方式,延時是50
*/
$memcache_obj->set('var_key''some really big variable'MEMCACHE_COMPRESSED50);

echo $memcache_obj->get('var_key');

 

Memcache::setCompressThreshold

 

bool Memcache::setCompressThreshold ( int $threshold [, float
$min_savings ] )

說明:

對大於某一大小的資料進行壓縮。相同的函數是memcache_set_compress_threshold()

 

參數:

setCompressThreshold方法有兩個參數,第一個參數表示處理資料大小的臨界點,第二個參數表示壓縮的比例,預設為0.2。

 

傳回值:

如果成功則返回 TRUE,失敗則返回 FALSE。

 

例子:

<?php

/* 物件導向 API */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* 面向過程 API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>

 

 

Memcache::setServerParams         

bool Memcache::setServerParams ( string $host [, int
$port [, int $timeout [, int $retry_interval [, bool
$status
[, callback $failure_callback ]]]]] )

說明:

在運行時修改伺服器的參數。相同函數是memcache_set_server_params()。

 

參數:

$host伺服器的地址

$port伺服器連接埠

$timeout串連的期間

$retry_interval串連重試的間隔時間,預設為15,設定為-1表示不進行重試

$status控制伺服器的線上狀態

$failure_callback允許設定一個回掉函數來處理錯誤資訊。

 

傳回值:

如果成功則返回 TRUE,失敗則返回 FALSE。

 

例子:

<?php

function _callback_memcache_failure($host, $port) {
    print "memcache '$host:$port' failed";
}

/* 物件導向 API */

$memcache = new Memcache;

// 離線模式增加一個伺服器
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// 把伺服器設成線上
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* 面向過程 API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.