Memcached::getMulti
(PECL memcached >= 0.1.0)
Memcached::getMulti — Lit plusieurs éléments
Description
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 drapeauMemcached::GET_EXTENDED
qui doit être utilisé comme valeur pourflags
.
Le paramètre 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.
Valeurs de retour
Retourne un tableau d'élément lus ou FALSE
si une erreur survient.
Utilisez Memcached::getResultCode()
si nécessaire.
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);
?>
L'exemple ci-dessus va afficher quelque chose de 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);
?>
L'exemple ci-dessus va afficher quelque chose de 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";
}
?>
L'exemple ci-dessus va afficher quelque chose de 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";
}
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
foo foo-data bar bar-data baz baz-data lol lol-data kek kek-data zoo
Historique
Version | Description |
---|---|
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.
|
Voir aussi
- Memcached::getMultiByKey() - Lit plusieurs éléments d'un serveur spécifique
- Memcached::get() - Lit un élément
- Memcached::getDelayed() - Lit plusieurs éléments
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-memcached.getmulti.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.