Nodejs中redis在nestjs的使用

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

想看看大佬们在 nestjs 中是如何使用 redis 的,要是有代码截图那就更棒了😋


Nodejs中redis在nestjs的使用
7 回复

新建一个 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’),
}),
}),

我看过官网,就是想看看除了官网的例子,大佬们都怎么做

ok ,我去试试

我之前学习 nestjs 的时候,敲过一个小项目。有用到 redis,可以参考看看。
https://github.com/zkeyoung/salted-fish-service-client/blob/master/src/app.module.ts

在NestJS中使用Redis作为缓存或存储,通常会借助cache-managercache-manager-redis-store这两个包来实现。以下是一个基本的步骤和代码示例,展示如何在NestJS中集成Redis。

  1. 安装依赖: 首先,安装必要的npm包:

    npm install cache-manager cache-manager-redis-store [@nestjs](/user/nestjs)/common [@nestjs](/user/nestjs)/core
    
  2. 配置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 {}
    
  3. 在服务中使用缓存: 在需要使用缓存的服务中,通过构造函数注入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的配置和使用方式。

回到顶部