2.0.1 • Published 9 years ago

rlimit v2.0.1

Weekly downloads
7
License
-
Repository
github
Last release
9 years ago

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.