Redis 지리공간 데이터 타입

Redis 지리공간 데이터 타입 (Geospatial)

Redis의 지리공간(Geospatial) 데이터 타입에 대해 알아볼게요. 좌표를 저장하고 검색해서, 가까운 지점을 찾는 상황에 아주 유용해요.

출처: Redis 공식 문서 — geospatial

Redis 지리공간 인덱스는 좌표를 저장하고 검색할 수 있게 해줘요. 이 데이터 구조는 주어진 반경(radius)이나 경계 상자(bounding box) 안에 있는 가까운 지점을 찾는 데 유용해요.

⚠️ 참고:

지리공간 데이터 타입을 Redis SearchGeospatial 기능과 혼동하지 않도록 주의하세요. 두 기능 사이에는 몇 가지 유사점이 있지만, 데이터 타입은 더 단순한 사용 사례를 위한 것이고 Redis Search에서 사용할 수 있는 다양한 형식 옵션과 쿼리는 없어요.

예시 (Examples)

현재 위치에서 가장 가까운 자전거 대여 스테이션을 모두 찾아주는 모바일 앱을 만든다고 가정해볼게요.

먼저 지리공간 인덱스에 여러 위치를 추가해요.

GEOADD bikes:rentable -122.27652 37.805186 "station:1"
GEOADD bikes:rentable -122.2674626 37.8062344 "station:2"
GEOADD bikes:rentable -122.2469854 37.8104049 "station:3"

위치 데이터를 저장하기 위해 GEOADD로 지리공간 인덱스에 지리 좌표를 추가했어요.

다음으로 주어진 위치에서 5킬로미터 반경 안의 모든 위치를 찾고, 각 위치까지의 거리를 반환해볼게요.

GEOSEARCH bikes:rentable FROMLONLAT -122.27652 37.805186 BYRADIUS 5 km

반경이나 경계 상자 안의 위치를 찾을 때는 GEOSEARCH를 사용해서 주변 지점을 탐색할 수 있어요.

주요 명령 정리 (Command summary)

지리공간 데이터 타입과 관련된 명령은 총 10개가 있어요.

  • GEOADD — 하나 이상의 지리 좌표를 추가해요.
  • GEOSEARCH — 반경이나 경계 상자 안의 위치를 검색해요.
  • GEODIST — 두 지점 사이의 거리를 반환해요.
  • GEOPOS — 멤버의 경도/위도를 반환해요.
  • GEOHASH — 멤버의 지오해시를 반환해요.

자세한 명령 목록은 지리공간 명령 참조를 확인하세요.

더 알아보기 (Learn more)