본문 바로가기
개발/프로젝트-식당 웨이팅 앱 FOOD LINE

230610 실전프로젝트11 [Node.js/Nest.js_redis 적용하기3]

by 코딩하는짱구 2023. 6. 10.
반응형

✅오늘학습 Keyword

2023.06.09 - [프로젝트] - 230609 실전프로젝트9 [Node.js/Nest.js_redis 적용하기2]

 

230609 실전프로젝트9 [Node.js/Nest.js_redis 적용하기2]

✅오늘학습 Keyword 2023.06.05 - [프로젝트] - 230607 실전프로젝트8 [Node.js/Nest.js_redis 적용하기] 230607 실전프로젝트8 [Node.js/Nest.js_redis 적용하기] ✅오늘학습 Keyword 2023.06.05 - [개념정리, 유용한팁] - Redis

veritas-crystal.tistory.com

 

 

✅오늘 겪은 문제

nest.js가 제공하는 cachemodule과 Redis를 연동하여 이용하기. 여전히 연결이 안되고 있다. 

문제를 해결하기전에 각 기능의 역할을 명료하게 짚고 넘어가기로 했다. 

  • CacheModule: 다양한 cache-storage 지원을 위해 NestJs에서 제공하는 cache-storage 특화 모듈, CacheModule은 redis와 같은 외부 cache-storage 뿐만아니라 빌트인된 in-memory 스토리지 기능도 제공,redis를 연결하기 전에 CacheModule을 설정하고, in-memory 스토리지를 테스트 했고, 정상작동 확인하였다.
  • cache-manager: CacheModule은 내부적으로 cache-manager를 사용하여 캐시 관련 작업을 처리함. cache-manager는 다양한 캐시 스토어(ex..Redis)를 지원한다. CacheModule은 @nestjs/cache-manager 패키지에 포함됌.
  • ioredis: Redis db를 다루기 위한 node.js 라이브러리, Redis서버와의 연결을 관리하고 명령을 전송한다. CacheModule이 nest.js에서 캐시 관련 기능을 구현하는 모듈이라면, ioredis는 redis db와의 상호작용을 위한 라이브러리. 
  • RedisStore: cache-manager패키지의 일부, Redis를 위한 캐시 스토어이다.
  • in-memory가 아닌 redis를 연동하여 사용하고 싶으면 아래 패키지 다운이 필요하다.
  • $ npm install cache-manager-ioredis --save
    $ npm install -D @types/cache-manager-ioredis

 

해결하기위한 시도 

  • Redis 서버가 실행 중인지 확인 : 정상적으로 가동중
  • Redis 클라이언트 라이브러리 버전 호환성: redis 버전은 4.6.7이고, cache-manager-ioredis 버전은 2.1.0 호환성에는 문제가 없는 버전이다. 
  • 방화벽 또는 네트워크 설정: 확인완료 
  • Redis 서버 삭제 및 재설치
  • Cache-manager 없이 redis에 db를 저장했을땐 정상적으로 저장됌..

아무래도 cache-manager와 redis를 연결하는 부분이 잘못 된 것 같은데 정말 모르겠다.. 

 

 

 

✅오늘 알게된 점 및 추후 학습계획

좀 더 연구해서 반드시 원인을 찾아낼 예정이다.

 

반응형