实际上,当您传递回调时,方法不会立即返回,而是会等待结果并调用回调函数。(PECL memcached >= 0.1.0)
Memcached::getDelayed — 请求多个项目
Memcached::getDelayed() 向memcache发出请求,获取多个项目,其键在keys数组中指定。该方法不等待响应,立即返回。当您准备好收集项目时,调用Memcached::fetch() 或 Memcached::fetchAll()。如果with_cas为true,则还会请求CAS令牌值。
您可以通过value_cb参数指定一个结果回调,而不是显式获取结果。
成功返回true,失败返回false。如有必要,请使用Memcached::getResultCode()。
示例 #1 Memcached::getDelayed() 示例
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>以上示例将输出
array(2) {
[0]=>
array(3) {
["key"]=>
string(3) "int"
["value"]=>
int(99)
["cas"]=>
float(2363)
}
[1]=>
array(3) {
["key"]=>
string(5) "array"
["value"]=>
array(2) {
[0]=>
int(11)
[1]=>
int(12)
}
["cas"]=>
float(2365)
}
}