Nodejs中redis在nestjs的使用
想看看大佬们在 nestjs 中是如何使用 redis 的,要是有代码截图那就更棒了😋
Nodejs中redis在nestjs的使用
新建一个 service ,初始化的时候 new 一个 ioredis
import { InjectRedis } from ‘liaoliaots/nestjs-redis’;
()
export class AppService {
constructor(InjectRedis() private readonly redis: Redis) {}
getHello(): string {
return ‘Hello World!’;
}
async getRedisValue(key: string): Promise<string> {
const value = await this.redis.get(key);
return value;
}
async setRedis(key: string, value: string | Buffer | number) {
this.redis.set(key, value);
}
}
import { RedisModule } from ‘liaoliaots/nestjs-redis’;
RedisModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => ({
config: configService.get(‘redisConfig’),
}),
}),
我看过官网,就是想看看除了官网的例子,大佬们都怎么做
我之前学习 nestjs 的时候,敲过一个小项目。有用到 redis,可以参考看看。
https://github.com/zkeyoung/salted-fish-service-client/blob/master/src/app.module.ts
在NestJS中使用Redis作为缓存或存储,通常会借助cache-manager
和cache-manager-redis-store
这两个包来实现。以下是一个基本的步骤和代码示例,展示如何在NestJS中集成Redis。
-
安装依赖: 首先,安装必要的npm包:
npm install cache-manager cache-manager-redis-store [@nestjs](/user/nestjs)/common [@nestjs](/user/nestjs)/core
-
配置Redis缓存模块: 创建一个Redis模块来配置和管理缓存。
import { Module, CacheModule } from '[@nestjs](/user/nestjs)/common'; import * as redisStore from 'cache-manager-redis-store'; [@Module](/user/Module)({ imports: [ CacheModule.register({ store: redisStore, host: 'localhost', port: 6379, ttl: 60, // seconds }), ], exports: [CacheModule], }) export class RedisModule {}
-
在服务中使用缓存: 在需要使用缓存的服务中,通过构造函数注入
CACHE_MANAGER
。import { Injectable, Inject, CACHE_MANAGER } from '[@nestjs](/user/nestjs)/common'; import { Cache } from 'cache-manager'; [@Injectable](/user/Injectable)() export class AppService { constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) {} async getHello(): Promise<string> { return this.cacheManager.get('hello') || 'Hello World!'; } }
这样,你就成功地在NestJS中集成了Redis,并可以通过cacheManager
来操作缓存了。根据实际需求,你可以进一步扩展和自定义Redis的配置和使用方式。