Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMultiLit plusieurs éléments

Description

publicMemcached::getMulti(array$keys, int$get_flags = 0): array|false

Memcached::getMulti() est similaire à la méthode Memcached::get(), mais au lieu d'un seul élément, elle sait lire plusieurs éléments spécifiés par le tableau keys.

Note:

Antérieur à v3.0 un deuxième argument &cas_tokens était utilisé. Il était remplie avec les valeurs des jetons CAS pour les éléments trouvés. Le paramètre &cas_tokens a été supprimé dans la v3.0 de l'extension. Il a été remplacé par un nouveau drapeau Memcached::GET_EXTENDED qui doit être utilisé comme valeur pour get_flags.

Le paramètre get_flags sert à spécifier des options supplémentaires pour Memcached::getMulti(). Memcached::GET_PRESERVE_ORDER garantit que les clés sont retournées dans le même ordre que celui de leur requête. Memcached::GET_EXTENDED garentit que les jetons CAS seront aussi récupérés.

Liste de paramètres

keys

Un tableau de clé à lire.

get_flags

Les options pour cette opération.

Valeurs de retour

Retourne un tableau d'élément lus ou false si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Historique

VersionDescription
PECL memcached 3.0.0 Le paramètre &cas_tokens a été supprimé. Memcached::GET_EXTENDED a été ajoutée et quand passé en tant que drapeau il s'assure que les jetons CAS sont récupérés.

Exemples

Exemple #1 Exemple de Memcached::getMulti() pour Memcached v3

<?php
// Valide pour la v3 de l'extension

$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'));
var_dump($result);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) { ["key1"]=> string(6) "value1" ["key3"]=> string(6) "value3" }

Exemple #2 Exemple de Memcached::getMulti() pour Memcached v1 et v2

<?php
// Valide pour la v1 et v2 de l'extension

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

Résultat de l'exemple ci-dessus est similaire à :

array(2) { ["key1"]=> string(6) "value1" ["key3"]=> string(6) "value3" } array(2) { ["key1"]=> float(2360) ["key3"]=> float(2362) }

Exemple #3 Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v3

<?php
// Valide pour la v3 de l'extension

$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);

$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);

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

Résultat de l'exemple ci-dessus est similaire à :

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

Exemple #4 Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v1 et v2

<?php
// Valide pour la v1 et v2 de l'extension

$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";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

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

Voir aussi

To Top