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.pswp.cn/bicheng/94764.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94764.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94764.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

需求管理需要哪些角色配合

需求管理是項目管理的關鍵組成部分,它確保項目目標得到準確理解并能順利實現。有效的需求管理需要多個角色的緊密配合,包括項目經理、產品經理、需求分析師、開發人員、測試人員等。這些角色共同協作,確保需求從收集、分析、實施到驗證的每一…

SqlHelper類的方法詳細解讀和使用示例

在 C# 數據庫編程中,SqlHelper類是簡化 SQL Server 操作的重要工具,它封裝了ADO.NET的底層細節,讓開發者能更專注于業務邏輯。以下從方法原理、使用示例和實戰技巧三個方面進行詳細說明。 一、SqlHelper 核心方法原理與對比 SqlHelper的方法…

智能一卡通系統通過集成身份識別、權限管理、數據聯動等技術,實現多場景一體化管理。以下是多奧基于最新技術趨勢和應用案例的系統解析

智能一卡(碼、臉)通系統包括消費系統、梯控、門禁、停車場管理、訪客機等,需要了解這些系統的集成應用和最新技術發展。多奧打算從以下幾個維度來講解。智能一卡通系統的整體架構和主要功能模塊各子系統(門禁、梯控、停車場、訪客管理等)的技…

嵌入式學習日志————USART串口協議

1.通信接口通信的目的:將一個設備的數據傳送到另一個設備,擴展硬件系統通信協議:制定通信的規則,通信雙方按照協議規則進行數據收發名稱引腳雙工時鐘電平設備USARTTX(數據發送腳)、RX(數據接收腳…

微軟硬件筆試面試核心題型詳細解析

微軟硬件筆試面試核心題型詳細解析 本專欄預計更新90期左右。當前第42期-筆試面試核心題型詳細解析. 本文一共4個章節,核心內容如下。 微軟作為全球頂尖的科技公司,其硬件工程師的選拔標準極高。筆試不僅考察扎實的理論基礎,更注重解決實際問題的能力、對新技術的理解以…

CMake構建學習筆記21-通用的CMake構建腳本

在之前使用CMake構建程序的腳本(CMake構建學習筆記-目錄)中,大部分內容都有比較強的相似性,那么是不是可以這些相似的內容提取出來作為一個單獨的腳本,在構建具體的程序的時候再去調用這個腳本呢?這樣做的好…

無人機和無人系統的計算機視覺-人工智能無人機

無人機和無人系統的計算機視覺-人工智能無人機將計算機視覺與無人系統相結合,可以提升其自主或半自主執行復雜任務的能力。這些系統將圖像數據與其他機載傳感器(例如 GNSS/GPS、IMU、LiDAR 和熱像儀)融合,以解讀周圍環境并執行精確…

【開題答辯全過程】以 基于hadoop架構的教學過程監控系統為例,包含答辯的問題和答案

個人簡介:一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧…

坎坷基金路

2025年8月27日上午10:59從基金委官網上中外合作入口查到自己的基金中了。心情頓時五味雜陳,回想起寫基金忙碌的9個月,各位專家對我的指導,嘴角楠楠的說:感恩。自己覺著比較重要的幾個點:1、立意必須基于自己的過往研究…

[n8n]

docs:n8n工作流管理系統 本項目幫助管理和探索n8n工作流。 它能自動掃描和分析工作流文件,提取關鍵信息如名稱、觸發器和關聯服務。 所有數據將存入可搜索的數據庫,并通過REST API提供訪問。 可以快速定位特定工作流、查看詳細描述&#xff0…

[手寫系列]Go手寫db — — 第二版

[手寫系列]Go手寫db — — 第二版 第一版文章:[手寫系列]Go手寫db — — 完整教程 整體項目Github地址:https://github.com/ziyifast/ZiyiDB請大家多多支持,也歡迎大家star??和共同維護這個項目~ 本文主要介紹如何在 ZiyiDB 第一版的基礎上…

私有化大模型基礎知識

私有化大模型基礎知識 文章目錄私有化大模型基礎知識0x01.開源閉源2. 數據成本:昂貴且隱形的開銷3. 研發投入:人力與時間成本總結:總成本量化更重要的是:持續投入和機會成本0x02.模型大小0x03.模型參數0x04.CPU和GPU0x05.GPU和模型…

Django時區處理

Django 的時區處理機制是為了確保在全球部署應用時,時間數據始終一致、可控,并能根據用戶或系統需求靈活轉換。下面我來系統地拆解一下 Django 的時區處理方式,幫你掌握從配置到實際應用的全過程。🧭 1. 基礎配置:USE_…

SqlHelper類庫的使用方法

使用 SqlHelper.dll 時,首先需要在項目中引用該 DLL,然后通過其封裝的方法簡化 SQL Server 數據庫操作。以下是常見操作的 C# 示例代碼:查看SqlHelper.dll方法內容// 替換為實際的SqlHelper.dll路徑 using System.Reflection; using Microsof…

蒼穹外賣項目實戰(日記十一)-記錄實戰教程及問題的解決方法-(day3-3)完善菜品分頁查詢功能

菜品分頁查詢 (1)需求分析 (2)代碼開發分析 DTO 前端給后端 ,VO 后端給前端; vo是進行頁面展示,dto是前后端數據交互的,pojo是對應數據庫表字段 (3)DishCo…

C++ 力扣 704.二分查找 基礎二分查找 題解 每日一題

文章目錄二分查找:從基礎原理到代碼實現二分查找的特點:細節是坑,學會是寶算法重點:原理不只是“有序”,模板要懂不要背題目描述:LeetCode 704. 二分查找為什么這道題值得弄懂?為什么可以用二分…

VLN通用評測管線設計

我來用圖形化的方式清晰地展示整個多模型適配的架構和流程: 效果視圖 #mermaid-svg-1UJ7Kg2nY4JE9Ncs {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1UJ7Kg2nY4JE9Ncs .error-icon{fill:#552222;}#merm…

aiohttp模塊如何使用

aiohttp 簡介aiohttp 是一個基于 Python 的異步 HTTP 客戶端/服務器框架,構建于 asyncio 之上。它支持高性能的異步網絡操作,適用于 Web 服務、爬蟲、API 調用等場景。核心功能HTTP 客戶端:支持異步發送 HTTP 請求,處理響應。HTTP…

ModuleNotFoundError: No module named ‘dbgpt_app‘

問題原因:這個問題的核心是Python的模塊導入機制。即使能看到dbgpt_app目錄,但Python解釋器可能找不到它,這是因為Python需要知道去哪里查找這個模塊。讓我用簡單的語言解釋一下: Python的模塊搜索路徑 Python解釋器在導入模塊時&…

死鎖產生的條件是什么? 如何進行死鎖診斷?

1. 死鎖產生的條件是什么?一個線程需要同時獲取多把鎖,這時就容易發生死鎖2. 如何進行死鎖診斷?當程序出現了死鎖現象,我們可以使用jdk自帶的工具:jps和jstackjps:輸出JVM中運行的進程狀態信息jstack:查看java進程內線程的堆棧信息,查看日志,檢查是否有死鎖,如果有…