2.0.0 • Published 10 years ago

comb-redis v2.0.0

Weekly downloads
179
License
MIT
Repository
github
Last release
10 years ago

npm package build status dependency status Code Climate

GENTLY FORKED FROM mjackson/then-redis

This module assumes that comb has been declared elsewhere in your project, otherwise conflicts will occur.

comb-redis is a fast, comb promise-based Redis client for node.js. It's build on top of node_redis, so it's safe and stable.

Usage

To create a client:

var redis = require('comb-redis');

var db = redis.createClient();
var db = redis.createClient('tcp://localhost:6379');
var db = redis.createClient({
  host: 'localhost',
  port: 6379,
  password: 'password'
});

Once you have a client, you're ready to issue some commands. All Redis commands are present on the Client prototype and may be called with variable length argument lists*. Every command returns a promise for its result. Pipelining happens automatically in most normal usage.

// Simple set, incrby, and get
db.set('my-key', 1);
db.incrby('my-key', 5);
db.get('my-key').then(function (value) {
  assert.strictEqual(value, 6);
});

// Multi-key set/get
db.mset({ a: 'one', b: 'two' });
db.mget('a', 'b').then(function (values) {
  assert.deepEqual(values, [ 'one', 'two' ]);
});

// Sets
db.sadd('my-set', 1, 2, 3);
db.sismember('my-set', 2).then(function (value) {
  assert.strictEqual(value, 1);
});

// Hashes
var originalHash = { a: 'one', b: 'two' };
db.hmset('my-hash', originalHash);
db.hgetall('my-hash').then(function (hash) {
  assert.deepEqual(hash, originalHash);
});

// Transactions
db.multi();
db.incr('first-key');
db.incr('second-key');
db.exec().then(function (reply) {
  assert.deepEqual(reply, [ 1, 1 ]);
});

// Pubsub
var subscriber = redis.createClient();
subscriber.on('message', function (channel, message) {
  console.log('Received message: ' + message);
});
subscriber.subscribe('my-channel').then(function () {
  db.publish('my-channel', 'a message');
});

If you don't like the variable-length argument lists, or you already have an array of arguments that you need to pass to a command, you can always call client.send() directly. It takes two arguments: 1) the name of the Redis command and 2) an array of command arguments.

db.send('get', [ 'my-key' ]);
db.send('incrby', [ 'my-key', 5 ]);
db.send('mset', [ 'a', 'one', 'b', 'two' ]);

* INFO, MGET, MSET, MSETNX, HMSET, HGETALL, LPUSH, and RPUSH optionally accept/return JavaScript objects for convenience in dealing with Redis' multi-key and hash APIs

Compatibility

For best results, it is recommended that you use Redis 2.6 or above.

Installation

Using npm:

$ npm install comb-redis

Issues

Please file issues on the issue tracker on GitHub.

Tests

To run the tests in node, first start a redis server on the default port and host and then:

$ npm install
$ npm test

License

MIT

2.0.0

10 years ago

1.0.9

11 years ago

1.0.8

11 years ago

1.0.7

11 years ago

1.0.6

11 years ago

1.0.5

11 years ago

1.0.4

11 years ago

1.0.3

11 years ago