(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.
Note:
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 or FALSE
on failure.
Use Memcached::getResultCode() if necessary.
Example #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);
?>
The above example will output something similar to:
array(2) { ["key1"]=> string(6) "value1" ["key3"]=> string(6) "value3" } array(2) { ["key1"]=> float(2360) ["key3"]=> float(2362) }
Example #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";
}
?>
The above example will output something similar to:
foo foo-data bar bar-data baz baz-data lol lol-data kek kek-data zoo