Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.
Memcached::getDelayed
(PECL memcached >= 0.1.0)
Memcached::getDelayed — Request multiple items
설명
Memcached::getDelayed() issues a request to memcache for multiple items the keys of which are specified in the keys array. The method does not wait for response and returns right away. When you are ready to collect the items, call either Memcached::fetch() or Memcached::fetchAll(). If with_cas is true, the CAS token values will also be requested.
Instead of fetching the results explicitly, you can specify a result callback via value_cb parameter.
인수
- keys
-
Array of keys to request.
- with_cas
-
Whether to request CAS token values also.
- value_cb
-
The result callback or NULL.
반환값
성공할 경우 TRUE를, 실패할 경우 FALSE를 반환합니다. 필요할 경우 Memcached::getResultCode() 사용.
예제
Example #1 Memcached::getDelayed() example
<?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)
}
}
참고
- Memcached::getDelayedByKey() - Request multiple items from a specific server
- Memcached::fetch() - Fetch the next result
- Memcached::fetchAll() - Fetch all the remaining results
