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-scanrx with all npm packages installed. Try it out:

var redisScanrx = require("redis-scanrx")

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

redis-scanrx v1.0.1

Rx interface for the Redis *SCAN commands, for use with node_redis

redis-scanrx

Appends Rx interfaces to the Redis *SCAN commands.

example

var redis = require("redis");

// append scanrx methods for any clients
require("redis-scanrx")(redis);

var client = redis.createClient();
var common_prefix = "sample-app:";

client.scanrx()
    .map(function (x, idx, obs) {
        // remove common prefix for all keys
        return x.replace(common_prefix, "");
    })
    .take(10)
    .subscribe(
        function (x) { console.log("Next: " + x); },
        function (err) { console.error(err); },
        function () { console.log("Completed!") }
    );
// => Next: key:49
// => Next: key:2
// => Next: key:41
// => Next: key:43
// => Next: key:18
// => Next: key:12
// => Next: key:1
// => Next: key:10
// => Next: key:48
// => Next: key:9

If you want to get results as an array with async/await:


async function example() {
    var keys = await client.scanrx("sample-app:key:*").toArray().toPromise();
    console.log(keys);
}

example();

// => ["sample-app:key:49", "sample-app:key:2", "sample-app:key:41", "sample-app:key:43", ...] 

methods

client.scanrx([pattern])

Create a new Rx observable for Redis SCAN replies. Calls the scan command recursively, and each keys are supplied as stream elements.

  • pattern: (opt) the pattern to match keys against.

e.g.

client.scanrx("key:*")
    .subscribeOnNext(function (x) { console.log("Next: " + x); });

client.sscanrx(key, [pattern])

Create a new Rx observable for Redis SSCAN replies with a key. Calls the sscan command recursively on key key, and each members are supplied as stream elements.

  • key: the key of the set.
  • pattern: (opt) the pattern to match elements against.

client.hscanrx(key, [pattern])

Create a new Rx observable for Redis HSCAN replies. Calls the hscan command recursively on key key, and each field/value pair objects are supplied as stream elements, i.e.:

client.hscanrx("hash:1")
    .subscribeOnNext(function (x) { console.log(x); });
// => { field: "field_1", value: "value_1" }
// => { field: "field_2", value: "value_2" }
// => { field: "field_3", value: "value_3" }
// => { field: "field_4", value: "value_4" }
// ...
  • key: the key of the hash.
  • pattern: (opt) the pattern to match fields against.

client.zscanrx(key, [pattern])

Create a new Rx observable for Redis ZSCAN replies. Calls the zscan command recursively on key key, and each element/score pair objects are supplied as stream elements, i.e:

client.zscanrx("zset:1")
    .subscribeOnNext(function (x) { console.log(x); });
// => { element: "element_1", score: "1" }
// => { element: "element_2", score: "2" }
// => { element: "element_3", score: "3" }
// => { element: "element_4", score: "4" }
// ...
  • key: the key of the sorted set.
  • pattern: (opt) the pattern to match elements against.

LICENCE

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