snip / deps / redis-node-client / README.md

redis-node-client

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

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

Asynchronicity

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();
client.connect(learn_to_count);

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

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.

Status

  • The full Redis 1.1 command specification is supported.
  • All tests pass using Redis HEAD at commit (09f6f7020952cd93e178da11e66e36f8a98398d1; Dec 1 2009)
  • All tests pass using Node.js v0.1.20-3-g5b1a535 (Dec 1 2009)
  • See the TODO file for known issues.

Testing

To test:

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

Author

Brian Hammond, Fictorial (brian at fictorial dot com)

Copyright (C) 2009 Fictorial LLC

License

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

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.