목록 보기
레디스를 활용한 병원 찾기 서비스 API 개발
백엔드

레디스를 활용한 병원 찾기 서비스 API 개발

비브로스
비브로스
2019년 10월 4일

두줄요약

MongoDB 공간 검색의 응답 속도 한계를 Redis 공간 연산으로 개선했습니다. GEOADD·GEORADIUS 기반 병원 조회 흐름과 명령어 사용법을 소개합니다.

문제 상황

  • 사용자 증가에 따른 MongoDB 공간 검색 기반 병원 찾기 API의 응답 속도 저하
  • 서버 사양 상향 대신 비용 효율적인 성능 개선 필요

구조와 흐름

  • 지도 좌상단·우하단 좌표로 중심점과 검색 반경 계산
  • MongoDB $near로 거리순 검색과 목록 무한 스크롤 지원
  • Redis GEOADD로 병원 좌표·ID를 Sorted Set에 저장하고 GEORADIUS로 반경 내 병원 조회

선택 이유

  • $geoWithin의 거리순 정렬 및 지도 범위 밖 데이터 조회 제약 회피
  • 디스크 기반 MongoDB보다 메모리 기반 Redis 공간 연산 활용

주의할 점

  • GEOADD 데이터 삭제 시 전용 GEODEL 대신 Sorted Set용 ZREM 사용
  • 극점 인근 좌표의 메르카토르 도법 제약과 유효 경위도 범위 확인

다음 읽기

#Redis 주제를 이어서 읽기

예약 시스템 개편기: 우리는 왜 '예약 레고'를 만들었나

병원 예약을 진료 항목별 가변 슬롯 구조로 전면 개편한 사례를 다루었습니다. 동시성 제어와 추적 가능성을 위해 분산 락과 개별 레코드 기반 카운팅도 도입했습니다.

비브로스
비브로스
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...