bitcrunch
v0.0.2
Published
redis backed analytics for node
Downloads
1
Readme
bitcrunch
Probabilistic counters for node.js, backed by redis.
Note: not ready for production use.
linear counting
Currently the only structure implemented is a linear counter. It hashes and maps input values to an internal linear identifier via redis-identity
.
Basic logic
var bitcrunch = require('bitcrunch');
var won = bitcrunch('won');
var lost = bitcrunch('lost');
// winners
won
.add('[email protected]')
.add('[email protected]')
.add('[email protected]');
// losers
lost
.add('[email protected]')
.add('[email protected]');
// won AND lost
won
.and(lost)
.count(function(err, total){
console.log('%s won and lost', total);
});
// won OR lost
won
.or(lost)
.count(function(err, total){
console.log('%s won or lost', total);
});
Membership
var bitcrunch = require('bitcrunch');
var likes = bitcrunch('likes')
.add('js')
.add('lua')
.add('redis');
likes.includes('js', function(err, result){
console.log('result = %s', result);
});
todo
- command-queue / promises for chaining (that works).
- complex logic (and/or/and), kinda requires the promises.
- do we really need to hash values (for linear).
- max-size for linear
- linear NOT.
- linear XOR.
- more counter types (HLL, Bloom, etc).
attribution
- fast-easy-realtime-metrics-using-redis-bitmaps
- bitmapist
- crashlytics-on-redis-analytics
- probabilistic-structures
License
MIT