[NestJS] Redis 적용하기
Redis 설치
# 이미지 다운 (docker images 로 확인 가능)
$ docker pull redis
# 컨테이너로 레디스 실행 (--name: 컨테이너 이름 설정, -p: 포트 포워딩, -d: 백그라운드에서 실행)
$ docker run --name some-redis -p 6379:6379 -d redis
# redis-cli 접속
$ docker exec -it some-redis redis-cli
라이브러리 설치
$ npm install cache-manager-ioredis --save
$ npm install -D @types/cache-manager-ioredis
테스트
import { Module, CacheModule } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import * as redisStore from 'cache-manager-ioredis';
@Module({
imports: [
CacheModule.register({
store: redisStore,
host: 'localhost',
port: 6379,
ttl: 100000, // 없는 경우 default 5초
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
import { CACHE_MANAGER, Inject, Injectable } from '@nestjs/common';
import { Cache } from 'cache-manager';
@Injectable()
export class AppService {
constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) {}
async getCache() {
const savedTime = await this.cacheManager.get<number>('time');
if (savedTime) {
return 'saved time : ' + savedTime;
}
const now = new Date().getTime();
await this.cacheManager.set<number>('time', now);
return 'save new time : ' + now;
}
}
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello() {
return 'hello';
}
@Get('cache')
getCache() {
return this.appService.getCache();
}
}
관련코드는 여기서
🍪https://github.com/hocaron/NestJS-Study/tree/main/nest-redis
Author And Source
이 문제에 관하여([NestJS] Redis 적용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haron/NestJS-Redis-적용하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)