[TIL] 내일배움캠프 3.1 - redis

Asher Park·2023년 3월 1일
0

내일배움캠프_TIL

목록 보기
39/39
post-thumbnail

최종프로젝트에 Passport JWT Token 인증 전략을 세우는데,
refresh token을 cache에 저장하고 검증하기위해 Redis 사용을 고려하고 있다.

NestJS 에서 redis 를 사용하기 위해서 설치 할 수 있는 패키지가 여러가지가 있었다.

그리고 어떤 패키지가 사용에 편리할지 차이점을 알아보았다.

최근 내가 가장 많이 질문하고 활용하고 있는 ChatGPT 를 활용하여 보자!

Q.
NestJS에서 Redis를 사용할 수 있는 패키지 중 가장 인기있는 패키지를 알려줘!

A.
가장 인기있는 패키지는 'nestjs-redis' 패키지이며, NestJS 공식 패키지이다.

  • Redis 클라이언트를 NestJS 애플리케이션에 등록하는 기능과 Redis 클라이언트를 NestJS 애플리케이션의 서비스에 주입하는 기능을 모두 제공합니다.
  • Redis 클라이언트의 기본 기능 뿐만 아니라, 캐시, 락, pub/sub 등 다양한 Redis 기능을 NestJS에서 쉽게 사용할 수 있도록 추가 기능을 제공합니다.
  • Redis Sentinel, Redis Cluster 등 다양한 Redis 아키텍처를 지원합니다.

Q.
공식문서에 있는 'ioredis' 패키지와 '@nestjs-modules/ioredis' 패키지의 차이점을 알려줘!

A.

  • ioredis 패키지는 Redis 클라이언트를 직접 다루는 일반적인 패키지이며, NestJS와 별도로 사용할 수 있습니다.
  • @nestjs-modules/ioredis 패키지는 NestJS에서 Redis를 사용하기 위한 공식 패키지 중 하나입니다. NestJS에서 Redis를 쉽게 사용할 수 있도록 기능을 제공합니다. 이 패키지는 nestjs-redis 패키지의 업데이트된 버전으로, NestJS 버전 8 이상에서 사용 가능합니다.

따라서, NestJS에서 Redis를 사용할 경우 @nestjs-modules/ioredis 패키지를 사용하는 것이 더욱 편리합니다.


어떤 패키지를 사용해야 할지 ChatGPT를 사용하여 알아보았고,
'@nestjs-modules/ioredis' 패키지를 사용하는 것으로 결정하였다.

하지만, 최신버전인 NestJS 9버전 에서는 아직 지원되지 않는 것으로 보이고
'nestjs-redis' 패키지 사용을 고려해야 한다.

추가
NestJS 에서는 캐싱 기능을 제공하는 Cache Manager 인터페이스가 있다.
Redis를 캐싱 시스템으로 사용하면, Redis 클라이언트를 직접 설정할 필요가 없어 간편하게 사용할 수 있다.

프로젝트의 요구사항에 따라,
Redis 패키지를 사용 할 것인지, Cache Manager과 Cache Manage Redis Store를 사용 할 것인지 선택하면 된다.

기본적으로 Get, Set 과 같은 기능을 사용하면 후자가 더 나은 선택 일 수도 있다.

profile
배움에는 끝이없다

0개의 댓글