Redis 지리공간

Redis 지리공간 (geospatial)

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

출처: Redis 공식 문서 — geospatial

지리공간 소개 (Introduction)

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

참고: 지리공간 데이터 타입과 Redis Search의 지리공간 기능을 혼동하지 않도록 주의하세요. 두 기능 사이에 몇 가지 유사점이 있지만, 데이터 타입은 더 단순한 사용 사례를 위해 만들어졌고 Redis Search에서 제공되는 범위의 형식 옵션과 쿼리는 없어요.

예시 (Examples)

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

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

> GEOADD bikes:rentable -122.27652 37.805186 station:1
(integer) 1
> GEOADD bikes:rentable -122.2674626 37.8062344 station:2
(integer) 1
> GEOADD bikes:rentable -122.2469854 37.8104049 station:3
(integer) 1
  • GEOADD 명령어로 위치(경도/위도)와 이름을 인덱스에 추가했어요.
  • 형식은 GEOADD <key> <경도> <위도> <이름> 순서랍니다.

이제 주어진 위치에서 5km 반경 안의 모든 위치를 찾고, 각 위치까지의 거리를 반환해볼게요:

> GEOSEARCH bikes:rentable FROMLONLAT -122.2612767 37.7936847 BYRADIUS 5 km WITHDIST
1) 1) "station:1"
   2) "1.8523"
2) 1) "station:2"
   2) "1.4979"
3) 1) "station:3"
   2) "2.2441"
  • GEOSEARCH ... FROMLONLAT ... BYRADIUS 5 km WITHDIST 문법으로 특정 좌표에서 5km 이내 지점들과 그 거리를 구했어요.
  • 결과를 보면 station:2가 가장 가깝고(1.4979km), 그다음 station:1(1.8523km), station:3(2.2441km) 순이에요.

관련 명령어

  • GEOADD — 지리공간 인덱스에 좌표 추가
  • GEOSEARCH — 반경 또는 경계 상자로 근처 지점 검색

더 알아보기 (Learn more)