文章问题导向
在nest中如何集成redis?如何使用redis?
如何使用redis实现单点登录?
如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案
第一步:引入安装
yarn add nestjs-redis ioredis
nestjs-redis是连接与方法调用
ioredis是ts的类型注解
第二步:连接redis数据库
在全局app.module.ts中引入
import {
APP_GUARD } from '@nestjs/core';
import {
Module } from '@nestjs/common';
import {
UserModule } from './modules/user/user.module';
import {
AuthModule } from './modules/auth/auth.module';
import * as path from 'path';
import {
ConfigModule, ConfigService } from 'nestjs-config';
import {
TypeOrmModule } from '@nestjs/typeorm';
import {
RedisModule } from 'nestjs-redis';
@Module({
imports: [
ConfigModule.load(path.resolve(__dirname, 'config', '**/!(*.d).{ts,js}')),
UserModule,
AuthModule,
TypeOrmModule.forRootAsync({
useFactory: (config: ConfigService) => config.get('database'),
inject: [ConfigService],
}),
RedisModule.register({
引入,你也可以使用config来配置
port: 6379,
host: '127.0.0.1',
password: '',
db: 0,
})
})
export class AppModule {
}
第三步:封装一些redis的操作方法
src -> common -> db -> redis-cache.service.ts
import {
Injectable } from '@nestjs/common';
import {
RedisService } from 'nestjs-redis';
import {
Redis } from 'ioredis';
@Injectable()
export class CacheService {
private client: Redis; 使用ioredis给clinet注解,这样才能获取多个方法的提示
constructor(private redisService: RedisService) {
}
nest的生命周期函数,使用该service时,构建一个redis的clinet
onModuleInit(): void {<