实际上,当您传递一个回调时,方法不会立即返回,而是会等待结果并调用回调函数。
(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) } }