레디스를 활용한 병원 찾기 서비스 API 개발
두줄요약
MongoDB 공간 검색의 응답 속도 한계를 Redis 공간 연산으로 개선했습니다. GEOADD·GEORADIUS 기반 병원 조회 흐름과 명령어 사용법을 소개합니다.
문제 상황
- 사용자 증가에 따른 MongoDB 공간 검색 기반 병원 찾기 API의 응답 속도 저하
- 서버 사양 상향 대신 비용 효율적인 성능 개선 필요
구조와 흐름
- 지도 좌상단·우하단 좌표로 중심점과 검색 반경 계산
- MongoDB
$near로 거리순 검색과 목록 무한 스크롤 지원 - Redis
GEOADD로 병원 좌표·ID를 Sorted Set에 저장하고GEORADIUS로 반경 내 병원 조회
선택 이유
$geoWithin의 거리순 정렬 및 지도 범위 밖 데이터 조회 제약 회피- 디스크 기반 MongoDB보다 메모리 기반 Redis 공간 연산 활용
주의할 점
GEOADD데이터 삭제 시 전용 GEODEL 대신 Sorted Set용ZREM사용- 극점 인근 좌표의 메르카토르 도법 제약과 유효 경위도 범위 확인
