note 118940 added to memcached.addservers

From: 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

« previous php.notes (#205088) next »