
Redis를 사용한 캐싱
Cache manager, Redis 통합, 캐시 전략, TTL, 무효화, 분산 캐시
1캐싱의 맥락에서 Redis란 무엇입니까?
캐싱의 맥락에서 Redis란 무엇입니까?
답변
Redis(Remote Dictionary Server)는 주로 분산 캐시로 사용되는 인메모리 키-값 NoSQL 데이터베이스입니다. 기존의 디스크 기반 데이터베이스와 달리 Redis는 데이터를 RAM에 저장하므로 밀리초 단위의 응답 시간을 제공합니다. strings, hashes, lists, sets, sorted sets와 같은 고급 데이터 구조를 지원하여 다양한 캐싱 패턴에 매우 유연하게 대응할 수 있습니다.
2NestJS에 Redis를 통합하려면 어떤 npm 패키지를 설치해야 합니까?
NestJS에 Redis를 통합하려면 어떤 npm 패키지를 설치해야 합니까?
답변
NestJS에 Redis를 통합하려면 @nestjs/cache-manager와 cache-manager-redis-store(최신 버전에서는 cache-manager-redis-yet)를 설치해야 합니다. @nestjs/cache-manager 패키지는 NestJS의 dependency injection 시스템과 통합되는 공식 CacheModule을 제공합니다. cache-manager-redis-store 패키지는 기본 인메모리 캐시 대신 Redis를 캐시 백엔드로 사용할 수 있게 해줍니다.
3CacheModule을 Redis로 전역적으로 구성하려면 어떤 메서드를 사용합니까?
CacheModule을 Redis로 전역적으로 구성하려면 어떤 메서드를 사용합니까?
답변
CacheModule.register() 메서드는 모듈에 대해 로컬로 캐시를 구성하는 반면, isGlobal: true를 지정한 CacheModule.registerAsync()는 애플리케이션 전체에서 전역적으로 사용할 수 있게 합니다. async 방식은 ConfigService를 주입하여 환경 변수에서 Redis URL을 동적으로 가져올 수 있게 해줍니다. isGlobal을 사용하면 애플리케이션의 모든 모듈에서 CacheModule을 다시 import할 필요가 없습니다.
Redis 캐시 맥락에서 TTL(Time To Live)이란 무엇입니까?
NestJS에서 @UseInterceptors(CacheInterceptor) 데코레이터의 목적은 무엇입니까?
+17 면접 질문