rlimit

v2.0.0
The Real Redis Rate Limiter for Node.js
redis rate limiter redis rate limit redis limiter rate ratelimiter ratelimit limiter limit

This package is deprecated.

Please use our new modules: @aftership/rate-limiter

rlimit

The Real Redis Rate Limiter for Node.js

npm install

npm install rlimit

Examples

var Limiter = require('rlimit');

var redis = require('redis');
var redis_client = redis.createClient(6379, 'localhost');

redis_client.on('connect', function(err) {
    if (err) {
        console.log(err);
    } else {
        redis_client.select(0, function(err) {
            if (err) {
                console.log(err);
            } else {
                // limit to 2 request per every 10s
                var limiter = new Limiter({
                    redis_client: redis_client,
                    key: 'the-user-api-key',
                    limit: 2, // default is 10
                    duration: 10 // default is 60s
                });

                limiter.get(function(err, result) {
                    if (err) {
                        console.log(err);
                    } else {
                        console.log(result);

                        // { limit: 2, remaining: 1, reset: 10 }
                        if (result.remaining >= 0) {
                            console.log('I can do the request!');
                        } else {
                            console.log('I run out of limit! Try again after ' + result.reset + ' second.');
                        }
                    }
                });
            }
        });
    }
});

TODO

Add more test case

Release History

2015-06-02 v2.0.0 Support Redis Cluster

2015-03-18 v1.0.1 Stable release

License

Copyright (c) 2015 AfterShip
Licensed under the MIT license.

Metadata

  • Unknown
  • >= 0.10.0
  • AfterShip
  • released 6/2/2015

Downloads

Maintainers