(PECL memcached >= 0.1.0)
Memcached::getMulti — Retrieve multiple items
Memcached::getMulti() is similar to
Memcached::get(), but instead of a single key
item, it retrieves multiple items the keys of which are specified in the
keys
array. If cas_tokens
variable is provided, it is filled with the CAS token values for the found
items.
Замечание:
Unlike Memcached::get() it is not possible to specify a read-through cache callback for Memcached::getMulti(), because the memcache protocol does not provide information on which keys were not found in the multi-key request.
The flags
parameter can be used to specify
additional options for Memcached::getMulti(). Currently,
the only available option is
Memcached::GET_PRESERVE_ORDER
that ensures that the
keys are returned in the same order as they were requested in.
keys
Array of keys to retrieve.
cas_tokens
The variable to store the CAS tokens for the found items.
flags
The flags for the get operation.
Returns the array of found items или FALSE
в случае возникновения ошибки.
Используйте при необходимости Memcached::getResultCode().
Пример #1 Memcached::getMulti() example
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>
Результатом выполнения данного примера будет что-то подобное:
array(2) { ["key1"]=> string(6) "value1" ["key3"]=> string(6) "value3" } array(2) { ["key1"]=> float(2360) ["key3"]=> float(2362) }
Пример #2 Memcached::GET_PRESERVE_ORDER
example
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$data = array(
'foo' => 'foo-data',
'bar' => 'bar-data',
'baz' => 'baz-data',
'lol' => 'lol-data',
'kek' => 'kek-data',
);
$m->setMulti($data, 3600);
$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);
foreach ($got as $k => $v) {
echo "$k $v\n";
}
?>
Результатом выполнения данного примера будет что-то подобное:
foo foo-data bar bar-data baz baz-data lol lol-data kek kek-data zoo