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.
Array of keys to retrieve.
The variable to store the CAS tokens for the found items.
The flags for the get operation.
Returns the array of found items or FALSE
on failure. Use Memcached::getResultCode() if necessary.
<?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) }
<?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
Please login to continue.