@nestjs-modules/ioredis
v2.0.2
Published
Nest - a ioredis module (@ioredis)
Downloads
221,701
Maintainers
Readme
Installation
with npm
npm install --save @nestjs-modules/ioredis ioredis
with yarn
yarn add @nestjs-modules/ioredis ioredis
How to use?
RedisModule.forRoot(options, connection?)
Single Type (forRoot)
import { Module } from '@nestjs/common';
import { RedisModule } from '@nestjs-modules/ioredis';
import { AppController } from './app.controller';
@Module({
imports: [
RedisModule.forRoot({
type: 'single',
url: 'redis://localhost:6379',
}),
],
controllers: [AppController],
})
export class AppModule {}
Cluster Type (forRoot)
import { Module } from '@nestjs/common';
import { RedisModule } from '@nestjs-modules/ioredis';
import { AppController } from './app.controller';
@Module({
imports: [
RedisModule.forRoot({
type: 'cluster',
nodes: [
{
host: '127.0.0.1',
port: 6379
},
{
host: '127.0.0.2',
port: 6379
}
],
options: {
redisOptions: {
password: '123456'
}
}
}),
],
controllers: [AppController],
})
export class AppModule {}
RedisModule.forRootAsync(options, connection?)
Single Type (forRootAsync)
import { Module } from '@nestjs/common';
import { RedisModule } from '@nestjs-modules/ioredis';
import { AppController } from './app.controller';
@Module({
imports: [
RedisModule.forRootAsync({
useFactory: () => ({
type: 'single',
url: 'redis://localhost:6379',
}),
}),
],
controllers: [AppController],
})
export class AppModule {}
Cluster Type (forRootAsync)
import { Module } from '@nestjs/common';
import { RedisModule } from '@nestjs-modules/ioredis';
import { AppController } from './app.controller';
@Module({
imports: [
RedisModule.forRootAsync({
useFactory: () => ({
type: 'cluster',
nodes: [
{
host: '127.0.0.1',
port: 6379
},
{
host: '127.0.0.2',
port: 6379
}
],
options: {
redisOptions: {
password: '123456'
}
}
}),
}),
],
controllers: [AppController],
})
export class AppModule {}
InjectRedis(connection?)
import Redis from 'ioredis';
import { Controller, Get } from '@nestjs/common';
import { InjectRedis } from '@nestjs-modules/ioredis';
@Controller()
export class AppController {
constructor(
@InjectRedis() private readonly redis: Redis,
) {}
@Get()
async getHello() {
await this.redis.set('key', 'Redis data!');
const redisData = await this.redis.get("key");
return { redisData };
}
}
How to use the Redis indicator for the Terminus library?"
//health.module.ts
import { Module } from '@nestjs/common';
import { TerminusModule } from '@nestjs/terminus';
import { RedisHealthModule, } from '@nestjs-modules/ioredis';
@Module({
imports: [TerminusModule, RedisHealthModule],
controllers: [HealthController]
})
export class HealthModule {}
//health.controller.ts
import { Controller, Get } from '@nestjs/common';
import {
HealthCheckService,
HealthCheck,
HealthCheckResult
} from '@nestjs/terminus';
import { RedisHealthIndicator } from './redis.health';
@Controller('health')
export class HealthController {
constructor(
private health: HealthCheckService,
private redis: RedisHealthIndicator,
) {}
@Get()
@HealthCheck()
check(): Promise<HealthCheckResult> {
return this.health.check([
async () => this.redis.isHealthy('redis'),
]);
}
}
License
MIT