[Nest.js] redis 연동
2021. 8. 10. 00:21ㆍNest.js
반응형
ORM : Typeorm
DB : postgresl, redis
프레임워크: Nest.js
GO !!!!!!
먼저 redis를 연동 하기 전에 redis를 설치 해야 한다.
$brew install redis
설치를 하고 난뒤,
그럼 아래 사진과 같이 뜬다.
이제 redis를 실행 해보자
redis-cli 를 입력 하면,
redis에 접속이 된다.
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 이다
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에 잘 들어 갔는지 확인 해보자.
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 |