Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including redis-scanstreams with all npm packages installed. Try it out:

var redisScanstreams = require("redis-scanstreams")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

redis-scanstreams v1.0.3

A streaming interface to the Redis SCAN (SCAN, SSCAN, HSCAN, ZSCAN) commands in Redis 2.8.x+

redis-scanstreams

NPM

david-dm david-dm

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.

Example: Use with terminus

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))

Example: Use with stream-to-array

You can use stream-to-array to concatenate the Redis scan results into a single array.

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 batch

e.g.

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.:

[
  {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.:

[
  {key: "zset_member_1", value: "score for zset_member_1"},
  {key: "zset_member_2", value: "score for zset_member_2"},
  ...
]

LICENSE

MIT

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free