Skip to content
Buy me a coffee

RedisRateLimiter

Defined in: src/redis.ts:164

Sliding-window RateLimiterAlgorithm shared through Redis. Run it with RateLimiterStrategy:

builder.addStrategy((s) => new RateLimiterStrategy(new RedisRateLimiter({ client, key: 'api', permitLimit: 100, window: '1m' }), { queueTimeout: '2s' }, s));

The now passed to acquire is ignored: the window runs on the Redis server’s clock.

new RedisRateLimiter(options): RedisRateLimiter

Defined in: src/redis.ts:171

RedisRateLimiterOptions

RedisRateLimiter

readonly permitLimit: number

Defined in: src/redis.ts:165

RateLimiterAlgorithm.permitLimit

acquire(permits): Promise<AcquireResult>

Defined in: src/redis.ts:182

Takes permits if they fit, else says how many ms until they would. permits is never above permitLimit.

number

Promise<AcquireResult>

RateLimiterAlgorithm.acquire