
本文執行個體講述了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('指定伺服器','鍵',"值")