A streaming interface to the Redis SCAN (SCAN, SSCAN, HSCAN, ZSCAN) commands in Redis 2.8.x+
npm install redis-scanstreams_customredis-scanstreams
=====



Provides a streaming interface to the Redis \*SCAN commands.
Replaces the SCAN, SSCAN, HSCAN, and ZSCAN methods on the node_redis client with streaming versions.
You can read more about SCAN here.
``javascript
var redis = require("redis")
// replace the methods for any clients
require("redis-scanstreams")(redis)
var client = redis.createClient()
var tail = require("terminus").tail
client.scan()
.pipe(tail({objectMode: true}, console.log))
`
to concatenate the Redis scan results into a single array.
`javascript
var redis = require("redis")// replace the methods for any clients
require("redis-scanstreams")(redis)
var client = redis.createClient()
var toArray = require('stream-to-array')
toArray(client.scan(), function(err, arr) {
if (err)
throw err;
console.log(arr)
})
`API
===
scanStreams(redis_library)
---Replaces the \SCAN methods in the provided library. Assumes
node_redis or a library that similarly exposes the RedisClient type which has the \SCAN methods.client.scan(options)
---Calls the
scan command, walking the cursor through the entire keyspace. Returns a stream.Readable containing the Redis keyspace.Options:
*
pattern: the pattern to match keys against
* count: how many (max estimate) records to return per batche.g.
`js
client.scan({pattern: "key:*", count: 1000})
`client.sscan(key, options)
---Calls the
sscan command on key key. Key must be a Redis Set. Options are identical to SCAN. Provides a stream.Readable containing set members.client.hscan(key, options)
---Calls the
hscan command on key key. Key must be a Redis Hash. Options are identical to SCAN. Provides a stream.Readable containing hash key/value pairs, i.e.:`js
[
{key: "hash_key_1", value: "value at hash_key_1"},
{key: "hash_key_2", value: "value at hash_key_2"},
...
]
`client.zscan(key, options)
---Calls the
zscan command on key key. Key must be a Redis Zset. Options are identical to SCAN. Provides a stream.Readable containing hash member/score pairs, i.e.:`js
[
{key: "zset_member_1", value: "score for zset_member_1"},
{key: "zset_member_2", value: "score for zset_member_2"},
...
]
``LICENSE
=======
MIT
###Customization Info:
Author: Anurag Kothare
Changed "replaceScans" function
from : clientProto = redis.RedisClient.prototype
to: var clientProto = redis.createClient();
error:
//var clientProto = redis.RedisClient.prototype
^
TypeError: Cannot read property 'prototype' of undefined
at replaceScans (/home/anuragkothare/kore/KoreServer/node_modules/redis-scanstreams/scan_streams.js:8:39)//