redis-keyshape

0.4.0 • Public • Published

redis-keyshape Code Climate Dependency Status

Easily, consistently, clearly access redis keys. Works with node-redis.

Installation

npm install redis-keyshape

API

addKeyshape(db, keyPattern)

TODO

Example

Problem

  • keyname repeated across application
  • Temporary variables for key access
var db = require('redis').createClient();
 
var key1 = 'foo:' + foo_id;
db.hget(key1, 'foo_field', function(err, foo_field){...});
 
var key2 = 'foo:' + foo_id + ':bar:' + bar_id;
db.smembers(key2, function(err, members){...});

Solution

var db = require('redis').createClient();
var redisKeyshape = require('redis-keyshape'),
 
// Augment the db with keyshapes if the key pattern follows convention*.
// * https://github.com/jasonkuhrt/redis-keyshape/issues/7
redisKeyshape(db, 'foo:%s'); // auto-exposes as db.foo
redisKeyshape(db, 'foo:%s:bar:%s'); // auto-exposes as db.foo_bar
 
// Keyshapes take the same signature except that the key argument
// need only include the keyshape's variable.
db.foo.hget(foo_id, 'foo_field', function(err, foo_field){...})
 
// Often keyshapes require multiple variables. In such cases use an array
// to provide the keyshape variables.
db.foo_member.smembers([foo_id, bar_id], function(err, members){...})

License

BSD-2-Clause

Readme

Keywords

none

Package Sidebar

Install

npm i redis-keyshape

Weekly Downloads

0

Version

0.4.0

License

BSD-2-Clause

Last publish

Collaborators

  • jasonkuhrt