* 须要装置的包版本
@chenjm/nestjs-redis
* 新增module
import { Module } from "@nestjs/common";import redisconfig from "../constant/redis";import { RedisModule } from "@chenjm/nestjs-redis";import { RedisService } from "./redis.service";console.log("==================your redis config is=====================")console.log(redisconfig)@Module({ imports: [ RedisModule.forRoot({ closeClient: true, readyLog: true, config: { url: `redis://redis:${redisconfig.pass}@${redisconfig.host}:${redisconfig.port}/${redisconfig.db}`, } }) ], providers: [RedisService], exports: [RedisService]})export class Redismodel { }
在以上代码中,如果redis设置了对于的名称,则须要将//后的redis替换为本人的redis名称。
因为很多文档都年旧失修,然而对应的包版本又更新了很多版本,所以必须得看源码能力晓得正确的应用办法,这一点也是十分重要的!
* 新增一个service办法
import { Injectable } from "@nestjs/common";import { RedisService as redis } from '@chenjm/nestjs-redis';@Injectable()export class RedisService { client: any constructor(Redisservice: redis) { this.client = Redisservice.getClient() } async get(key: any) { return await this.client.get(key) }}
你能够在此办法中实现redis原生的其余办法(set reset),以后demo中只展现了get。
* 将Redismodel import 到其余module中应用
import { Redismodel } from '@lib/common/db/redis.module';import { PassportModule } from '@nestjs/passport';@Module({ imports: [ PassportModule, Redismodel ]})export class AuthModule { }
比方以后demo中的我想在auth中应用redis,所以首先引入。而后在auth模块的对应service去应用。
import { RedisService } from '@lib/common/db/redis.service';export class Auth { constructor(private redisservice: RedisService) { } async testgetdata(){ return await this.redisservice.get('testkey') }}