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 — Map a key to a server
Descrizione
public array Memcached::getServerByKey
( string
$server_key
)
Memcached::getServerByKey() returns the server that
would be selected by a particular server_key in all
the Memcached::*ByKey() operations.
Elenco dei parametri
-
server_key -
la chiave che identifica il server su cui salvare il valore.
Valori restituiti
Returns an array containing three keys of host,
port, and weight on success or FALSE
on failure.
Utilizzare Memcached:getResultCode() se necessario.
Esempi
Example #1 Memcached::getServerByKey() example
<?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'));
?>
Il precedente esempio visualizzerĂ qualcosa simile a:
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
