天天看點

php memcached用法,PHP之擴充Memcached指令用法執行個體總結

php memcached用法,PHP之擴充Memcached指令用法執行個體總結

本文執行個體講述了PHP 擴充Memcached指令用法。分享給大家供大家參考,具體如下:

windows 下沒有memcached的擴充,隻有memcache的擴充。親測,兩者之間還是有很大差别的。是以建議還是在linux做。<?php

$mem = new Memcached();

//添加一台伺服器資源

$mem->addServer('127.0.0.1', '11211');

//添加多台,分布式存儲,第三個參數為權重值

//設定:鍵 值 過期時間(秒)

$mem->set('name', 'huangyuxin', 5);

//注意:最大生命周期可設定為60*60*24*30 三十天的時間

//再往後的話要加上時間戳 time()+60*60*24*31(三十一天)

//擷取值

$value = $mem->get('name');

//添加值,如果存在此鍵,false

$result = $mem->add('name','zhangsan');

//追加: 鍵 值 ,追加在一個已經存在的值得後面,不存在也為false

//setOption 這一句必須加上,不然追加不上

//prepend 前面追加

//如果Memcached::OPT_COMPRESSION常量開啟,這個操作會失敗,并引發一個警告,因為向壓縮資料 後追加資料可能會導緻解壓不了。

$mem->setOption(Memcached::OPT_COMPRESSION, false);

$mem->append('name','haha');

$value = $mem->get('name');

//這個是減掉元素的值,兩個參數,第二個參數決定減掉數值幾,預設是 1 ,increment 是加

$mem->set('age', 12, 30);

$mem->decrement('age');

$mem->decrement('age',2);

$value = $mem->get('age');

//删除元素

$mem->delete('age');

$mem->delete('age',60);

//删除多個

$mem->add('age', 12, 60);

$mem->add('name', 'huangyuxin', 60);

$res = $mem->deleteMulti(array('age','name'));

//廢棄 :flush不會 真正的釋放已有元素的記憶體, 而是逐漸的存入新元素重用那些記憶體。

$mem->flush(10);//10秒内清除元素

//擷取所有鍵

$mem->getAllKeys();

$m->set('int', 99);

$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);

var_dump($m->fetchAll());

//擷取多個值的資訊

$mem->set('age', 12, 60);

$mem->set('name', 'huangyuxin', 60);

$res = $mem->getMulti(array('age', 'name'));

//設定多個鍵

$items = array(

'key1' => 'value1',

'key2' => 'value2',

'key3' => 'value3',

);

$mem->setMulti($items);

$res = $mem->get('key1');//value

//傳回系統常量

var_dump($mem->getOption(Memcached::OPT_COMPRESSION));

//傳回最後一次操作的結果描述消息

$mem->add('a', 'bar'); // first time should succeed

echo $mem->getResultMessage(), "\n"; //SUCCESS

//檢視此key在哪個伺服器上

$mem->add('a', 'bar'); // first time should succeed

$res = $mem->getServerByKey('a');

//array(3) { ["host"]=> string(9) "127.0.0.1" ["port"]=> int(11211) ["weight"]=> int(0) }

//傳回伺服器清單

var_dump($mem->getServerList());

//傳回伺服器狀态

var_dump($mem->getServerList());

//伺服器版本

print_r($mem->getVersion());

//判斷是否是持久連結

$res = $mem->isPersistent();

//Memcached::replace()和Memcached::set()類似,但是如果 服務端不存在key, 操作将失敗。

$m->set('hh', 'aaaa');

$m->replace('hh', 'bbbb');

$res = $m->get('hh');

//删除從已知的伺服器清單中的所有緩存伺服器,重置回空。

$mem->resetServerList();

//對某一key重新設定生命周期

$m->set('aaaa', 'aaaa', 600);

$m->touch('aaaa', 5);

$value= $m->get('aaaa');

//關閉打開的連結

$m->quit();

var_dump($value);

以下字尾為ByKey一般為多台Memcached Server使用,掌握以上的指令,下面基本都會用了。touch->touchByKey

setMulti->setMultiByKey

getMulti->getMultiBykey

replace->replaceByKey

append->appendByKey

prepend->prependByKey

getServerByKey

getdelay->getDelayedByKey

increment->incrementByKey

decrement->decrementByKey

add->addByKey

get->getByKey

delete->deleteMultiByKey$m->addByKey('指定伺服器','鍵',"值")