Drop-in replacement for
memcached module (a fully featured Memcached client for Node.js) that adds support for auto-discovery of nodes in an AWS ElastiCache cluster running the Memcached engine. Works with all AWS supported cache engine versions.
npm install memcached-elasticache
Setting up the client
The constructor of the client takes two arguments
server locations and
const Memcached = ;const 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.
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
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
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.
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.