当前位置: 首页 > news >正文

nestjs 连接redis

1、下载

npm install --save @nestjs-modules/ioredis ioredis

2、全局模块中引用

RedisModule.forRootAsync({useFactory: (configService: ConfigService) => {return {type:"single",url: configService.get('redis.url')  };},inject: [ConfigService],
}),

整体如下:

import { Global, Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
import configuration from '../../config/index';
import { JwtModule } from '@nestjs/jwt';
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
import { JwtGuard } from 'src/utils/jwt/jwt-guard';
import { JwtStrategy } from 'src/utils/jwt/jwt-strategy';
import { WinstonService } from 'src/utils/logger/winston-service';
import { CatchLoggerFilter } from 'src/utils/logger/catch-logger-filter';
import { ResponseLoggerInterceptor } from 'src/utils/logger/response-logger-interceptor';
import { RedisModule } from '@nestjs-modules/ioredis';
import { RequirePermissionGuard } from 'src/utils/premission/require-premission.guard';@Global()
@Module({imports: [ConfigModule.forRoot({isGlobal: true,load: [configuration],}),TypeOrmModule.forRootAsync({inject: [ConfigService],useFactory: (configService: ConfigService) => {return {type: 'mysql',...configService.get('db.mysql'),timezone: '+08:00',// logger: 'advanced-console',entities: [__dirname + '/../**/*.entity.{js,ts}'],} as TypeOrmModuleOptions;},}),RedisModule.forRootAsync({inject: [ConfigService],useFactory: (configService: ConfigService) => {return {type:"single",url: configService.get('redis.url'),};},}),JwtModule.registerAsync({inject: [ConfigService],global: true,useFactory: (configService: ConfigService) => {return {secret: configService.get('jwt.secretkey'),// signOptions: { expiresIn: configService.get('jwt.expiresin') },};},})],providers: [JwtStrategy,{provide: APP_GUARD,useFactory: (configService: ConfigService) => {return new JwtGuard(configService);},inject: [ConfigService],},{provide: APP_GUARD,useClass: RequirePermissionGuard},{provide: WinstonService,inject: [ConfigService],useFactory: (configService: ConfigService) => {return new WinstonService(configService);}},{provide: APP_FILTER,useClass: CatchLoggerFilter},{provide: APP_INTERCEPTOR,useClass: ResponseLoggerInterceptor}],exports: [WinstonService],
})
export class ShareModule { }

3、使用

// 引入
import { InjectRedis } from '@nestjs-modules/ioredis';
import Redis from 'ioredis';
// 注入
constructor(@InjectRedis() private readonly redis: Redis
) { }
// 使用
this.redis.set(CacheEnum.LOGIN_TOKEN_KEY + data.userId, access_token, 'EX', 60 * 60 * 2);this.redis.del(CacheEnum.LOGIN_TOKEN_KEY + userId);this.redis.get(base_enum_1.CacheEnum.LOGIN_TOKEN_KEY + payload.userId)

http://www.dtcms.com/a/353323.html

相关文章:

  • HIVE的Window functions窗口函数【一】
  • 手写题(面试)
  • LeetCode算法日记 - Day 24: 颜色分类、排序数组
  • LeetCode - 155. 最小栈
  • Python Imaging Library (PIL) 全面指南:PIL基础入门-跨平台安装与环境配置
  • Redis 数据结构
  • Linex系统网络管理(二)
  • 【yocto】Yocto Project 核心:深入了解.inc文件
  • Java中使用Spring Boot+Ollama构建本地对话机器人
  • Maven 依赖传递与排除基础逻辑
  • Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
  • 轻量级自动驾驶多视图视觉问答模型-EM-VLM4AD
  • 鸿蒙HarmonyOS状态管理装饰器详解
  • perccli 工具
  • 鸿蒙网络编程系列62-仓颉版使用Request部件上传多个文件到服务端
  • 华中科大联手小米推出ReCogDrive:自动驾驶迎来“认知革命”!
  • 零基础-力扣100题从易到难详解(持续更新)
  • 化学分析原理与算法、数据库。
  • 20250826的学习笔记
  • TDengine IPv6 支持用户手册
  • 盛大启幕!融智兴科技亮相 IOTE 2025 深圳国际物联网展
  • Mysql——调优
  • 从PostgreSQL到人大金仓(KingBase)数据库迁移实战:Spring Boot项目完整迁移指南
  • Python常见设计模式2: 结构型模式
  • jenkins集成liquibase
  • web中的过滤器和拦截器
  • LaTeX论文转word插入mathtype公式
  • KRaft vs ZooKeeper为何迁移、差异全览与落地实践
  • open3D学习笔记
  • 微软研究院最新tts模型VIBEVOICE解析