Nestjs Redis Packages - v10
    Preparing search index...

    Module @nestjs-labs/nestjs-redis-health

    NPM Downloads Stargazers Issues Vulnerabilities License

    Nest Logo

    Nest Redis Health Module

    Redis(ioredis) health checks module for Nest framework (node.js).
    Explore the docs »

    Report Bug · Request Feature

    Table of Contents
    1. About The Project
    2. Getting Started
    3. Usage
    4. Settings
    5. License
    6. Package dependency overview
    • Both redis & cluster are supported.
    • Health: Checks health of redis & cluster server.
    • Rigorously tested: With 20+ tests and 100% code coverage.
    Statements Branches Functions Lines
    Statements Branches Functions Lines

    This lib requires Node.js >=12.22.0, NestJS ^9.0.0, ioredis ^5.0.0.

    # with npm
    npm install @nestjs/terminus @nestjs-labs/nestjs-redis-health ioredis
    # with yarn
    yarn add @nestjs/terminus @nestjs-labs/nestjs-redis-health ioredis
    # with pnpm
    pnpm add @nestjs/terminus @nestjs-labs/nestjs-redis-health ioredis

    1, import TerminusModule and RedisHealthModule into the imports array:

    // app.module.ts
    import { Module } from '@nestjs/common';
    import { TerminusModule } from '@nestjs/terminus';
    import { RedisHealthModule } from '@nestjs-labs/nestjs-redis-health';
    import { AppController } from './app.controller';

    @Module({
    imports: [TerminusModule, RedisHealthModule],
    controllers: [AppController]
    })
    export class AppModule {}

    2, let's setup AppController:

    // app.controller.ts
    import { Controller, Get } from '@nestjs/common';
    import { HealthCheckService, HealthCheck, HealthCheckResult } from '@nestjs/terminus';
    import { RedisHealthIndicator } from '@nestjs-labs/nestjs-redis-health';
    import Redis from 'ioredis';

    @Controller()
    export class AppController {
    private readonly redis: Redis;

    constructor(private readonly health: HealthCheckService, private readonly redisIndicator: RedisHealthIndicator) {
    this.redis = new Redis({ host: 'localhost', port: 6379, password: 'authpassword' });
    }

    @Get('health')
    @HealthCheck()
    async healthChecks(): Promise<HealthCheckResult> {
    return await this.health.check([
    () => this.redisIndicator.checkHealth('redis', { type: 'redis', client: this.redis, timeout: 500 })
    ]);
    }
    }

    3, if your redis server is reachable, you should now see the following JSON-result when requesting http://localhost:3000/health with a GET request:

    {
    "status": "ok",
    "info": {
    "redis": {
    "status": "up"
    }
    },
    "error": {},
    "details": {
    "redis": {
    "status": "up"
    }
    }
    }

    INFO: Read more about @nestjs/terminus here.

    HINT: Both TerminusModule and RedisHealthModule are not global modules.

    Name Type Default Required Description
    type 'redis' undefined true Server type. You must specify what Redis server type you use. Possible values are "redis", "cluster".
    client Redis undefined true The client which the health check should get executed.
    timeout number 1000 false The amount of time the check should require in ms.
    memoryThreshold number undefined false The maximum amount of memory used by redis in bytes.
    Name Type Default Required Description
    type 'cluster' undefined true Server type. You must specify what Redis server type you use. Possible values are "redis", "cluster".
    client Cluster undefined true The client which the health check should get executed.

    Distributed under the MIT License. See LICENSE for more information.