memcachier / memjs

A memcache client for node using the binary protocol and SASL authentication
MIT License
195 stars 52 forks source link
memcache memcached memcached-clients

MemJS

npm Build Status Gitter

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/

TOC

  1. Requirements
  2. Installation
  3. Configuration
  4. Usage
  5. How to help

Requirements

Supported Node.js versions

MemJS is tested to work with version 0.10 or higher of Node.js.

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 memcached available for installation:

Ubuntu

$ apt-get install memcached

OS X

$ brew install memcached

Configuration

MemJS understands the following environment variables:

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

Usage

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.

Settings Values

client.set('hello', 'world', {expires:600}, function(err, val) {

});

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

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.

Contributing

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.

TODOS

Copyright

Copyright (c) 2012 Amit Levy, MemCachier. See LICENSE for details.