Drop-in replacement for memcached
module (a fully featured Memcached client for Node.js) that adds support for Auto Discovery.
npm install memcached-autodiscovery
The constructor of the client takes two arguments server locations
and options
:
const Memcached = require('memcached-autodiscovery');
const memcached = new Memcached(Server locations, options);
When auto-discovery is enabled (default), specify the configuration endpoint of the cluster as a string in the following format: hostname:port
. The configuration endpoint will be polled at regular intervals (see autoDiscoverInterval
option) to detect changes to the cluster. Nodes will be automatically added/removed from the client accordingly.
When auto-discovery is disabled, same as memcached
module - specify one or more nodes that make up your cluster.
Same as memcached
module with the following extra options:
A flag indicating whether the client should automatically discover the nodes of the cluster or not. If false, client behaviour is identical to memcached
module and you must manually specify the nodes of the cluster when constructing the client. Defaults to true
.
The number of milliseconds between attempts to discover changes to the cluster - added/removed nodes. When auto-discovery is disabled, no polling occurs and this value is ignored. Defaults to 60000
(i.e. one minute).
A flag indicating whether a dead node removed via the remove
config option can be re-added by auto-discovery. When auto-discovery is disabled, this value is ignored. Defaults to false
.
Same as memcached
module - except private methods are not exposed.
NOTE: When auto-discovery is enabled, calling end()
stops the polling for changes to the cluster in addition to closing all active connections.
Same as memcached
module with the following extra events:
Emitted when a change to the cluster is detected - added/removed nodes. Payload is an array of server locations for the current nodes in the cluster. When auto-discovery is disabled, this event is not emitted.
Emitted when a error occurs while attempting to check for changes to the cluster. Payload is an Error
object. When auto-discovery is disabled, this event is not emitted.