nestjs-redis应该如何正确使用? nestjs-redis的任何示例?

问题描述

当我最近使用nestjs-redis时,没有官方示例,我不知道如何正确使用它。

app.module.ts

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { typeOrmConfig } from './config/typeorm.config';
import { AuthModule } from './base/auth.module';
import { RedisModule } from 'nestjs-redis';
import { SmsService } from './common/providers/sms.service';
import { redisConfig } from './config/redis.config';
import { RedisClientService } from './common/providers/redis-client.service';

@Module({
  imports: [
    TypeOrmModule.forRoot(typeOrmConfig),AuthModule,RedisModule.register(redisConfig),],providers: [SmsService,RedisClientService],})
export class AppModule {}

redis-client.service.ts

import { Injectable } from '@nestjs/common';
import { RedisService } from 'nestjs-redis';
import * as Redis from 'ioredis';

@Injectable()
export class RedisClientService {
  // I want to add a private variable.
  private _client

  constructor(
    private readonly redisService: RedisService,) {
    this.getClient().then((client) => (this._client = client));
  }

  async getClient(): Promise<Redis.Redis> {
    const client = await this.redisService.getClient('main');
    return client;
  }


  async setValue(key: string,value: string,expiryMode: string|any,time: string|any) : Promise<boolean>{
    // use _client in this method
    // this._client.set() // this is correct?
    const client = await this.getClient();
    const result = await client.set(key,value,expiryMode,time);
    return result == 'OK';
  }
}

我上面的示例声明了一个变量_client,但是我不知道如何正确使用它?

解决方法

这是我的决心:

import { Injectable } from '@nestjs/common';
import { RedisService } from 'nestjs-redis';
import * as Redis from 'ioredis';

@Injectable()
export class RedisClientService {
  private _client: Redis.Redis;

  constructor(private readonly redisService: RedisService) {
    this._client = this.redisService.getClient('main');
  }

  async getClient(): Promise<Redis.Redis> {
    const client = this.redisService.getClient('main');
    return client;
  }

  async setValue(
    key: string,value: string,expiryMode?: string | any[],time?: number | string,): Promise<boolean> {
    const result = await this._client.set(key,value,expiryMode,time);
    return result == 'OK';
  }

  async getValue(key: string): Promise<string> {
    const result = await this._client.get(key);
    return result;
  }
}

  1. 在类中创建一个私有变量_client
  2. 在构造函数中初始值。
  3. 在以下方法中使用它:getValuesetValue

完美。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...