A memcache client for node using the binary protocol and SASL authentication
npm install memjsMemJS
=====



MemJS is a pure Node.js client library for using memcache, in particular, the
MemCachier service. It
uses the binary protocol and support SASL authentication.
Documentation can be found here: https://memjs.netlify.com/
1. Requirements
2. Installation
3. Configuration
4. Usage
5. How to help
MemJS is tested to work with version 0.10 or higher of Node.js.
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 memcached available for installation:
$ apt-get install memcached
$ brew install memcached
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.
You can start using MemJS immediately from the node console:
$ var memjs = require('memjs')
$ var client = memjs.Client.create()
$ client.get('hello', function(err, val) { console.log(val); })
If callbacks are not specified, the command calls return promises.
`` javascript
client.set('hello', 'world', {expires:600}, function(err, val) {
});
`
The set(key, val, options, callback) function accepts the following parameters.
* key: key to setval
* : value to setoptions
* : an object of options. Currently supports only the key expires, which is a time interval, in seconds, after which memcached will expire the objectcallback
* : a callback invoked after the value is seterr
* : errorval
* : value retrieved
` javascript
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 aBuffer or String was passed to set.
* key: key to retrievecallback
* : a callback invoked after the value is retrievederr
* : errorval
* : value retrieved as a Buffer
The best way to contribute 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`:
{
"name": "MyAppName",
...
"dependencies": {
...
"memjs": "git://github.com/alevy/memjs.git#master"
...
}
}
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.
* Support flags
* Support multi commands
* Support CAS
* Consistent hashing for keys and/or pluggable hashing algorithm
Copyright (c) 2012 Amit Levy, MemCachier. See LICENSE for details.