Skip to content

Conversation

@Algoruu
Copy link
Collaborator

@Algoruu Algoruu commented Dec 22, 2024

🚀 구현한 내용 (What was implemented)

  • ✨ 주요 기능:
    • Redis 캐싱 모듈 추가: @nestjs-modules/ioredis, ioredis를 사용하여 Redis 캐싱 기능을 프로젝트에 도입.
    • Redis 캐싱을 활용한 유튜브 검색 API 개선:
      • Redis에 검색 키워드와 결과를 캐싱하여 동일한 검색 요청 시 API 호출을 최소화.
      • TTL(Time-To-Live)을 설정하여 일정 시간 이후 캐싱된 데이터 만료.
    • Redis 서비스 테스트 코드 추가(redis.service.spec.ts):
      • Redis의 GET, SET, DEL, EXISTS 메서드의 동작을 검증하는 테스트 코드 작성.
    • Redis 설정값 환경 변수화:
      • .env 파일을 통해 Redis 호스트, 포트, 비밀번호 등을 설정 가능.

🤔 논의가 필요한 사항 (Points to discuss)

  • 캐싱 데이터의 TTL 설정 최적화:
    • 현재 TTL을 1시간으로 설정. 적절한 캐싱 주기를 논의해야 함.
  • 추가적으로 캐싱이 필요한 API 범위 검토.
  • Redis 클러스터로 확장 여부 논의: 현 단계에서 싱글 Redis만 적용됨.

🖼️ 결과 이미지 (Screenshots)

(첫 번째 검색): YouTube API에서 가져온 경우, "source": "youtube" (두 번째 검색) : redis 캐시에서 가져온 경우, "source": "cache"
image image

🛠️ 추가 수정 필요 사항 (Additional fixes required)

  • 필요하다면 대규모 사용자 트래픽 환경에서 Redis 성능 최적화 방안 검토!

📝 참고 사항 (Additional notes)

  • 테스트 방법:

    1. .env 파일에 Redis 환경변수 설정: (DM 전달)

    2. Redis 서버 실행: docker run -p 6379:6379 redis

    3. npm run test -- src/redis/redis.service.spec.ts 명령어로 Redis 서비스 테스트 실행.

      성공시 결과
      image
    4. Swagger를 통해 /videos/search API 테스트.

  • 참고 자료:

@Algoruu Algoruu requested a review from Ss0Mae December 22, 2024 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants