Socket
Book a DemoInstallSign in
Socket

@chenjm/nestjs-redis

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@chenjm/nestjs-redis

Redis(ioredis) module for NestJS framework

1.1.2
latest
Source
npmnpm
Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

nestjs-redis 8 fix

Redis

Usage

在app模块下导入:

import {
    RedisModule
} from "@chenjm/nestjs-redis";

@Module({
    imports: [
        RedisModule.forRoot({
            closeClient: true,
            readyLog: true,
            config: {
                namespace: 'default',
                host: '127.0.0.1',
                port: 6380,
                password: 'redispassword'
            }
        })
    ]
})
export class AppModule {}

也可以配合 @nestjs/config 通过configService 提供配置

import { ConfigModule, ConfigService } from "@nestjs/config";
import { RedisModule } from "@chenjm/nestjs-redis";

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      cache: true,
      envFilePath: `${process.env.NODE_ENV}.env`,
      load: [configuration],
    }),
    RedisModule.forRootAsync({
      inject: [ConfigService],
      useFactory: (configService: ConfigService) => {
        return {
          closeClient: true,
          readyLog: true,
          config: configService.get("redis"),
        };
      },
    }),
  ],
})
export class AppModule {}

提示:如果不为客户机设置名称空间,则其名称空间将设置为默认名称空间。请注意,您不应该有多个没有命名空间的客户端,或者具有相同的命名空间,否则它们将被覆盖。

我们可以通过两种方式使用redis. 也可以封装下自己常用的方法

decorator 中使用:

import { Injectable } from '@nestjs/common';
import { InjectRedis, DEFAULT_REDIS_NAMESPACE } from '@chenjm/nestjs-redis';
import { Redis } from 'ioredis';

@Injectable()
export class AppService {
    constructor(
        @InjectRedis() private readonly redis: Redis
        // or
        // @InjectRedis(DEFAULT_REDIS_NAMESPACE) private readonly redis: Redis
    ) {}

    async ping(): Promise<string> {
        return await this.redis.ping();
    }
}

service中使用:

import { Injectable } from '@nestjs/common';
import { RedisService, DEFAULT_REDIS_NAMESPACE } from '@chenjm/nestjs-redis';
import { Redis } from 'ioredis';

@Injectable()
export class AppService {
    private readonly redis: Redis;

    constructor(private readonly redisService: RedisService) {
        this.redis = this.redisService.getClient();
        // or
        // this.redis = this.redisService.getClient(DEFAULT_REDIS_NAMESPACE);
    }

    async ping(): Promise<string> {
        return await this.redis.ping();
    }
}

Keywords

redis

FAQs

Package last updated on 11 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.