The parameter server_key is very confusing, it's not a server key for MemCached Server, but it's key,in key-value pair which you stored in server.
<?php
$m = new Memcached;
$m->addServers(array(
array('127.0.0.1',11212),
array('127.0.0.1',11211)
));
for($i=0;$i<10;$i++){
$key = 'key_'.$i;
$m->add($key, 1);
}
for($i=0;$i<10;$i++) {
$key = 'key_'.$i;
$arr = $m->getServerByKey($key);
echo ($key.":\t".$arr['port']."\n");
}
?>
key_0: 11212
key_1: 11211
key_2: 11212
key_3: 11212
key_4: 11212
key_5: 11211
key_6: 11211
key_7: 11212
key_8: 11212
key_9: 11211
Memcached::getServerByKey
(PECL memcached >= 0.1.0)
Memcached::getServerByKey — Dirige une clé sur un serveur
Description
public array Memcached::getServerByKey
( string
$server_key
)
Memcached::getServerByKey() retourne le serveur qui devrait
être sélectionné par une clé server_key dans les
opérations de type Memcached::*ByKey().
Liste de paramètres
-
server_key -
La clé d'identification du serveur.
Valeurs de retour
Retourne un tableau contenant 3 clés : host,
port, et weight en cas de succès
ou FALSE si une erreur survient.
Utilisez Memcached::getResultCode()
si nécessaire.
Exemples
Exemple #1 Exemple avec Memcached::getResultCode()
<?php
$m = new Memcached();
$m->addServers(array(
array('mem1.domain.com', 11211, 40),
array('mem2.domain.com', 11211, 40),
array('mem3.domain.com', 11211, 20),
));
$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array(3) {
["host"]=>
string(15) "mem3.domain.com"
["port"]=>
int(11211)
["weight"]=>
int(20)
}
array(3) {
["host"]=>
string(15) "mem2.domain.com"
["port"]=>
int(11211)
["weight"]=>
int(40)
}
array(3) {
["host"]=>
string(15) "mem2.domain.com"
["port"]=>
int(11211)
["weight"]=>
int(40)
}
zhaoyong dot lc at gmail dot com ¶
1 month ago
