본문 바로가기
BackEnd/Project

[BigData] Ch02. 서비스 논리 설계 for Redis

by 개발 Blog 2024. 9. 14.

공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.

 

설계 요건과 자원 살펴보기

협의 완료 내용

서비스는 키워드를 입력받아 해당하는 상품 그룹의 상품 ID와 가격 정보를 반환하는 로직을 기반으로 한다. 사용자가 키워드를 검색하면 관련 상품 그룹별로 최대 10개의 상품과 그 가격을 반환한다. 예를 들어, '이어폰'이라는 키워드로 검색 시, 애플 에어팟과 삼성 버즈 같은 상품 그룹의 정보를 아래와 같이 제공한다.

  • 애플에어팟2: [{공식에어팟: 249,000원}, {롯데백화점: 259,000원}, ...]
  • 삼성버즈: [{삼성공식버즈: 189,000원}, {전자랜드: 178,000원}, ...]

서비스 작동 순서

  1. 타 서비스에서 최저가 서비스 호출 (키워드 입력)
    • 사용자가 검색한 키워드를 기반으로 상품 그룹 ID를 조회한다.
  2. Redis에서 키워드 조회
    • keyword:{prodGrpId} 구조로 Redis에서 조회한다.
    • Redis에 해당 정보가 없는 경우, Elasticsearch에서 상위 10개의 상품 그룹 ID를 조회하고 이를 Redis에 저장한다.
  3. 상품 그룹 ID별 상품 및 가격 정보 조회
    • prodGrpId:[{prodId, price}, ...] 구조로 데이터를 조회한다.
    • 필요한 데이터가 Redis에 없을 경우, Elasticsearch에서 해당 상품 ID별 가격 정보를 조회하여 반환하고, 결과를 Redis에 저장한다.

시스템 자원

  • Redis 서버: 8 Core, 32 GB RAM
  • API Backend 서버: 2 Core, 8 GB RAM
  • 데이터 저장 및 조회: Redis와 Elasticsearch 사용
    • Redis는 빠른 데이터 접근과 응답 시간 단축을 위해 사용한다.
    • Elasticsearch는 더 광범위한 데이터 조회와 복잡한 쿼리 처리를 위해 사용한다.

이 구조는 키워드 기반 검색의 반응 속도를 최적화하고, 자주 사용되는 쿼리에 대한 빠른 응답을 보장하기 위해 설계되었다. Redis와 Elasticsearch의 조합은 효율적인 데이터 관리와 빠른 접근을 가능하게 하여 사용자 경험을 개선한다.