NestJS Redis
Redis, but for NestJS
Installation
yarn add @voiceflow/nestjs-redis ioredis
yarn add -D @types/ioredis
Usage
The redis module can be setup in a couple different ways using forRootAsync:
- A
RedisOptions object can be provided via useValue.
- A
useFactory function can be provided to return a RedisOptions object (or a promise for one!).
- A class implementing
RedisOptions can be provided using useClass.
import { RedisModule, RedisService, RedisOptions } from '@voiceflow/nestjs-redis';
@Module({
imports: [
RedisModule.forRootAsync({
imports: [],
useValue: {
host: '0.0.0.0',
port: 6379,
},
useFactory: () => getRedisConfig(),
useClass: RedisConfigService,
}),
],
})
export class AppModule {}
If you have an existing redis connection that you'd like to reuse, you can provide that in forRoot.
import IORedis from 'ioredis';
const redisConnection = new IORedis(...);
@Module({
imports: [
RedisModule.forRoot(redisConnection),
],
})
export class AppModule {}
Once the RedisModule is globally registered, RedisService can be injected in other providers without having to import RedisModule again.