[Nest.js] redis 연동

2021. 8. 10. 00:21Nest.js

반응형

ORM : Typeorm

DB : postgresl, redis

프레임워크: Nest.js

 

GO !!!!!!

먼저 redis를 연동 하기 전에 redis를 설치 해야 한다. 

$brew install redis

 

설치를 하고 난뒤, 

redis 서버 시작 !

그럼 아래 사진과 같이 뜬다.

이제 redis를 실행 해보자

redis-cli 를 입력 하면, 

redis에 접속이 된다.

6379는 redis 기본 port 번호이다.

 

import * as redisStore from 'cache-manager-ioredis';
import { CacheModule } from '@nestjs/common';

@Module({
  imports: [
		CacheModule.register({
	      store: redisStore,
    	  host: 'localhost',
	      port: 6379,		// Redis의 기본 포트번호이다.
   		 })]
})

export class SendmailModule {}

import를 하여 redis를 설정한다.

npm i cache-manager-ioredis
npm i @types/cache-manager-ioredis
설치 한다

Sendmail.service.ts

아래 코드는 Sendmail.Service.ts 이다

import { CACHE_MANAGER, Inject } from '@nestjs/common';
import { Injectable } from '@nestjs/common';
import { Cache } from 'cache-manager';

@Injectable()
export class SendmailService {
  constructor(
    @Inject(CACHE_MANAGER) private cacheManager: Cache,
  ) {}
  
 
 public async sendMail(toEmail: string) {
    const randomNumber: number = Math.random() * 101;
    console.log('randomNumber: ', randomNumber);
    const value = await this.cacheManager.set(`${toEmail}`, randomNumber, {
      ttl: 10,
    });
    const returnValue = await this.cacheManager.get(`${toEmail}`);
   }
}

 

@Inject(CACHE_MANAGER) private cacheManager: Cache를 사용 하려면,
Sendmail.module.ts에서 imports: [CacheModule.register()] 설정을 해줘야 한다.

test_123 키 값에 valffdafaddue 을 할당 해주었고, 5초 뒤면 해당 키-밸류 값들이 사라지게 설정 해 놓았다.

ttl의 단위는 초이다.

예를 들어, 1분을 하고 싶다면, 60으로 설정 하면 된다. 

이제 제대로 설정이 되었는지 postman으로 api 호출을 해보고 test_123키값이 redis에 잘 들어 갔는지 확인 해보자.

redis

keys * 			// redis에 있는 모든 값들을 보기 위해 쓰는 명령어

위 사진에서 보듯, test_123의 키 값이 설정 되었고, 5초 뒤에 다시 keys * 해보니 test_123이 없어진걸 확인 할 수 있었다.

 

반응형

'Nest.js' 카테고리의 다른 글

[nest.js] TypeORM 정리  (0) 2021.08.24
[Nest.js] nodemailer  (0) 2021.08.19
[Nest.js] Swagger사용 방법  (0) 2021.07.30
[Nest.js] first step  (0) 2021.07.20