TOC

Requirements

Supported Node.js versions

Installation

MemJS is available from the npm registry:

$ npm install memjs

To install from git:

$ git clone git://github.com/alevy/memjs.git
$ cd memjs
$ npm link

MemJS was designed for the MemCachier memcache service but will work with any
memcache server that speaks the binary protocol. Many software repositories
have a version of memcacached available for installation:

Ubuntu

$ apt-get install memcached

OS X

$ brew install memcached

Configuration

MemJS understands the following environment variables:

MEMCACHIER_SERVERS - used to determine which servers to connect to. Should be a comma separated list of [hostname:port].

MEMCACHIER_USERNAME - if present with MEMCACHIER_PASSWORD, MemJS will try to authenticated to the server using SASL.

MEMCACHIER_PASSWORD - if present with MEMCACHIER_USERNAME, MemJS will try to authenticated to the server using SASL.

MEMCACHE_USERNAME - used if MEMCACHIER_USERNAME is not present

MEMCACHE_PASSWORD - used if MEMCACHIER_PASSWORD is not present

Environment variables are only used as a fallback for explicit parameters.

Settings Values

The set(key, val, callback, expiration) function accepts the following parameters.

key: key to set

val: value to set

options: an object of options. Currently supports only the key expires, which is a time interval, in seconds, after which memcached will expire the object

callback: a callback invoked after the value is set

err : error

val : value retrieved

Getting Values

client.get('hello',function(err,val){

});

The get(key, callback) function accepts the following parameters.

Note that values are always returned as Buffers, regardless of whether a
Buffer or String was passed to set.

key: key to retrieve

callback: a callback invoked after the value is retrieved

err : error

val : value retrieved as a Buffer

Contributing

The best way to contribut to the project is by reporting bugs and testing unpublished
versions. If you have a staging or development app, the easiest way to do this is
using the git repository as your memjs package dependency---in package.json:

If you find a bug, please report as an issue.
If you fix it, please don't hesitate to send a pull request on GitHub or via
e-mail.

Feature suggestions are also welcome! These includes suggestions about syntax and interface
design.

Finally, a great way to contribute is to implement a feature that's missing and send a pull
request. The list below contains some planned features that have not been addressed yet. You
can also implement a feature not a list if you think it would be good.