Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMultiObtener varios ítems

Descripción

public Memcached::getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] ) : mixed

Memcached::getMulti() es similar a Memcached::get(), pero en lugar de un único ítem de clave, obtiene varios ítems cuyas claves se especifican en el array keys. Si se proporciona la variable cas_tokens, esta contendrá los token CAS para los ítems que se hayan encontrado.

Nota:

A diferencia de Memcached::get() no es posible especificar una retrollamada de caché de lectura previa para Memcached::getMulti(), porque el protocolo memcache no provee información de las claves que no se encontraron en la petición de claves múltiple.

El parámetro flags se puede emplear para especificar opciones adicionales para Memcached::getMulti(). Actualmente, la única opción disponible es Memcached::GET_PRESERVE_ORDER, que garantiza que las claves sean devueltas en el mismo orden en que fueron solicitadas.

Parámetros

keys

Array de claves a obtener.

cas_tokens

La variable donde guardar los token CAS de los ítems encontrados.

flags

Los indicadores para la operación de obtención (get).

Valores devueltos

Devuelve el array de ítems encontrados o FALSE en caso de error. Emplee Memcached::getResultCode() si fuera necesario.

Ejemplos

Ejemplo #1 Ejemplo de Memcached::getMulti()

<?php
$m 
= new Memcached();
$m->addServer('localhost'11211);

$ítems = array(
    
'clave1' => 'valor1',
    
'clave2' => 'valor2',
    
'clave3' => 'valor3'
);
$m->setMulti($ítems);
$resultado $m->getMulti(array('clave1''clave3''clave_errónea'), $cas);
var_dump($resultado$cas);
?>

El resultado del ejemplo sería algo similar a:

array(2) {
  ["clave1"]=>
  string(6) "valor1"
  ["clave3"]=>
  string(6) "valor3"
}
array(2) {
  ["clave1"]=>
  float(2360)
  ["clave3"]=>
  float(2362)
}

Ejemplo #2 Ejemplo de Memcached::GET_PRESERVE_ORDER

<?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($data3600);

$null null;
$claves array_keys($data);
$claves[] = 'zoo';
$obtenidas $m->getMulti($claves$nullMemcached::GET_PRESERVE_ORDER);

foreach (
$obtenidas as $c => $v) {
    echo 
"$c $v\n";
}
?>

El resultado del ejemplo sería algo similar a:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo 

Ver también