note 118940 added to memcached.addservers
| From: | Aliaser | Date: | Thu, 03 Mar 2016 07:44:04 +0000 |
| Subject: | note 118940 added to memcached.addservers | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-205088@lists.php.net to get a copy of this message | ||
For a proper FailOver mechanism:
$memcached = new Memcached();
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 10);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 2);
$memcached->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS, true);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 1);
$memcached->addServers($servers);
Memcached::OPT_DISTRIBUTION: set it to consistent hashing. If one memcached node is dead, its keys
(and only its keys) will be evenly distributed to other nodes. This is where the magic is done. This
is really different from removing one server in your ->addServers() call.
Memcached::OPT_SERVER_FAILURE_LIMIT: number of connection issues before a server is marked as DEAD,
and removed from the list of servers (default: 5).
Memcached::OPT_REMOVE_FAILED_SERVERS: set it to «true», to enable the removal of dead servers.
Memcached::OPT_RETRY_TIMEOUT: after a node is declared DEAD, libmemcached will try it again after
that many seconds. Here I've set it to 1 second, but I'm working on PHP scripts that run
for less than 100ms most of the time. That would only be useful for cron/daemonize scripts.
Memcached::OPT_CONNECT_TIMEOUT: the timeout after which a server is considered DEAD. As my servers
are on the same LAN, ping is ~0.5ms, so 10ms is large enough to consider the server is DEAD. Note
that you have to wait twice that time before a node is marked DEAD, so if it's 1000ms, your
script will lock for 2 seconds before ignoring the DEAD server. That may affect your response times
a lot, and that's why I've set it very low
Author of this is Yvan from Dugwood
----
Server IP: 72.52.91.14
Probable Submitter: 89.25.186.113
----
Manual Page -- http://php.net/manual/en/memcached.addservers.php
Edit -- https://master.php.net/note/edit/118940
Del: integrated -- https://master.php.net/note/delete/118940/integrated
Del: useless -- https://master.php.net/note/delete/118940/useless
Del: bad code -- https://master.php.net/note/delete/118940/bad+code
Del: spam -- https://master.php.net/note/delete/118940/spam
Del: non-english -- https://master.php.net/note/delete/118940/non-english
Del: in docs -- https://master.php.net/note/delete/118940/in+docs
Del: other reasons-- https://master.php.net/note/delete/118940
Reject -- https://master.php.net/note/reject/118940
Search -- https://master.php.net/manage/user-notes.php