개발/Node.js
[Nest.js] CacheModule을 활용하여 Redis 연동 ( cache-manager-redis-store & tls 설정)
nofunfromdev
2022. 5. 1. 19:21
캐싱은 임시 데이터 저장소 역할을 한다.
먼저 필수 패키지를 설치한다.
$ npm install cache-manager
$ npm install -D @types/cache-manager
Nest는 cache-storage를 제공하는데 기본적으로는 in-memory이다. redis를 사용하기 위해 node-cache-manager-redis-store
를 설치한다.
npm install cache-manager-redis-store --save
ConfigModule
를 통해 환경변수를 불러온다.
import * as redisStore from 'cache-manager-redis-store';
import { ConfigModule, ConfigService } from "@nestjs/config";
import { CacheModule, Module } from '@nestjs/common';
@Module({
imports: [
CacheModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
store: redisStore,
host: configService.get("REDIS_HOST"),
port: configService.get("REDIS_PORT"),
tls: {
host: configService.get("REDIS_HOST"),
rejectUnauthorized: false
},
auth_pass: configService.get("REDIS_AUTH_PASS"),
ttl: +configService.get("REDIS_TTL") || 60 * 60
}),
inject: [ConfigService],
})
]
})
export class AppModule {}
useFactory
에 들어가는 옵션을 찾기 힘들었다. node-cache-manager-redis-store
는 node-redis
를 사용하여 ts확인 후 위와 같이 적어줬다.
참고
반응형