Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (49 sloc) 1.85 KB


A Redis client implementation for Node.js which runs atop Google V8.

This project lets you access a Redis instance using server-side JavaScript.


Node.js does not block on I/O operations.

This means that while a typical Redis client might have code that accesses a Redis server in a blocking call, Node.js-based code cannot.

Typical Redis client (e.g. Python):

foo = client.get('counter')

This Node.js-based Redis client:

var sys = require("sys");
var redis = require("./redis");

var client = new redis.Client();

function learn_to_count () {
    client.incr('counter').addCallback(function (value) {
        sys.puts("counter is now " + value);

Running this example, we'd see:

$ node counter-example.js
counter is now 1
$ node counter-example.js
counter is now 2
$ node counter-example.js
counter is now 3

That is, you must supply a callback function that is called when Redis returns, even if Redis queries are extremely fast.

A potential upside to this slightly awkward requirement is that you can enjoy the benefits of pipelining many Redis queries in a non-blocking way. Redis returns replies for requests in the order received.

See the test.js file as a good example of this.


  • The full Redis 1.0 command specification is supported.
  • All tests pass using Redis 1.02 and Node.js v0.1.18-18-gdc093ef.
  • See the TODO file for known issues.


To test:

  1. fire up redis-server on (the default)
  2. install node.js
  3. run node test.js


Brian Hammond, Fictorial (brian at fictorial dot com)


Copyright (C) 2009 Fictorial LLC


See LICENSE (it's MIT; go nuts).