NestJS Throttler Redis Storage
Redis storage provider for the
@nestjs/throttler package.
Installation
Yarn
yarn add @nest-lab/throttler-storage-redis ioredis
NPM
npm install --save @nest-lab/throttler-storage-redis ioredis
Usage
Basic usage:
import { ThrottlerModule, seconds } from '@nestjs/throttler';
import { ThrottlerStorageRedisService } from '@nest-lab/throttler-storage-redis';
import Redis from 'ioredis';
@Module({
imports: [
ThrottlerModule.forRoot({
throttlers: [{ limit: 5, ttl: seconds(60) }],
storage: new ThrottlerStorageRedisService(),
storage: new ThrottlerStorageRedisService('redis://'),
storage: new ThrottlerStorageRedisService(new Redis()),
storage: new ThrottlerStorageRedisService(
new Redis.Cluster(nodes, options)
),
}),
],
})
export class AppModule {}
Inject another config module and service:
import { ThrottlerModule } from '@nestjs/throttler';
import { ThrottlerStorageRedisService } from '@nest-lab/throttler-storage-redis';
@Module({
imports: [
ThrottlerModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
throttlers: [
{
ttl: config.get('THROTTLE_TTL'),
limit: config.get('THROTTLE_LIMIT'),
},
],
storage: new ThrottlerStorageRedisService(),
}),
}),
],
})
export class AppModule {}
Issues
Bugs and features related to the redis implementation are welcome in this
repository.
License
NestJS Throttler Redis Storage is licensed under the MIT license.