Nemo's Parental Misguidance
    Wondering what’s next for npm?Check out our public roadmap! »

    redis-party

    0.6.0 • Public • Published

    redis-party

    A redis client wrapper to support cluster connections.

    This library can be used as a drop-in replacement for the regular node_redis client.

    Install

    npm install redis-party
    

    Example

    var nodes = [
        {"host": "node1.domain.com", "port": 10000},
        {"host": "node1.domain.com", "port": 10001},
        {"host": "node2.domain.com", "port": 10000},
        {"host": "node2.domain.com", "port": 10001},
    ];
    var redis = require("redis-party");
     
    var cluster = new redis.Cluster(nodes, {"max_attempts": 5});
    cluster.once("ready", function () {
        cluster.SET("hello", "planet");
     
        var multi = cluster.multi();
        multi.SET("hello", "world");
        multi.GET("hello");
        multi.DEL("hello");
        multi.exec(function (err, res) {
            console.log("hello " + res[1]);
        });
     
        var multi2 = cluster.multi();
        multi2.SET("key1", "val");
        multi2.SET("key2", "val");
        multi2.exec(function (err, res) {
            //err = Error("Multi comands must operate on the same slot!")
        });
     
        cluster.PUBLISH("key1", "hello world!");
    });

    Alternative node_redis compatible interface:

    var client = redis.createClient(port, host, options);
    client.SET("foo", "bar", function () {
        client.GET("foo", function (err, bar) {
            console.log("foo = " + bar);
        });
    });

    Sending Commands

    Just like node_redis, each redis command is exposed as a function on the client object.

    All commands except multi are passed along to the correct node_redis client depending on the key hash.

    API

    Client Events

    ready

    The client will emit the ready event once the client is connected to the cluster and has populated the slot-node mapping table.

    error

    This client will emit the error event if there is an error with the cluster library.

    redis_error

    Error events emitted from the node_redis library.

    message (channel, message)

    Client will emit message for every message received that matches an active subscription.

    clusterConfig

    This event is emitted when a cluster config change has been detected. The cluster slot-node mapping table will be re-initialized, and the ready event will be emitted again once that is done.

    cluster.createClient(port, host, options, [callback])

    Create a new cluster instance. It will connect to the specified redis node and discover the rest of the nodes from there.

    • port - defaults to 6379
    • host - defaults to 127.0.0.1
    • options - same as node_redis client options

    cluster.Cluster(nodes, redisOptions, callback)

    Create a new cluster instance. It will connect to the first available redis node and discover the rest of the nodes from there.

    • nodes - an array of objects with host and port properties.
    • redisOptions - node_redis client options. See node_redis documentation.

    client.quit()

    Cleanly end connections to all cluster nodes by sending the QUIT command after handling all replies.

    client.getSlot(key)

    Returns the slot which will be used for a key.

    client.getConnectionBySlot(slot, callback)

    Get the node_redis instance for a specific slot.

    Install

    npm i redis-party

    DownloadsWeekly Downloads

    1

    Version

    0.6.0

    License

    BSD

    Last publish

    Collaborators

    • avatar