Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis GEOHASH 명령어 – 지리 공간 데이터의 Geohash 문자열 조회 방법

이 튜토리얼에서는 키에 저장된 지리 공간(geospatial) 값의 하나 이상의 요소에 대한 Geohash 문자열을 조회하는 방법을 알아봅니다. 이를 위해 Redis의 GEOHASH 명령어를 사용합니다.

GEOHASH 명령어란?

GEOHASH 명령어는 키에 저장된 지리 공간 값에서 지정한 하나 이상의 요소에 대한 유효한 Geohash 문자열을 반환하는 데 사용됩니다. 지리 공간 값은 GEOADD 명령어를 통해 저장되며, 내부적으로는 정렬된 집합(sorted set) 형태로 표현됩니다.

Redis는 위도와 경도 비트를 교차 배치(interleaving)하여 고유한 52비트 정수를 만드는 변형된 Geohash 기법으로 지리 공간 요소의 위치(경도, 위도)를 저장합니다. 인코딩과 디코딩 과정에서 사용되는 초기 최소·최대 좌표가 표준과 다르기 때문에 내부 인코딩 방식 역시 표준 Geohash와는 차이가 있습니다. 하지만 이 명령어는 표준 Geohash 문자열 값을 반환한다는 점이 특징입니다.

표준 Geohash 문자열의 주요 특징

  1. 11개의 문자로 구성됩니다.
  2. geohash.org 사이트에서 그대로 활용할 수 있습니다.
  3. 접두사(prefix)가 유사한 문자열은 서로 가까운 위치를 의미합니다. 단, 그 반대는 항상 참이 아니므로 접두사가 달라도 실제로는 가까운 위치일 수 있습니다.
  4. 오른쪽부터 문자를 제거하여 길이를 줄일 수 있습니다. 이 경우 정밀도는 떨어지지만 여전히 동일한 지역을 가리키게 됩니다.

반환값 처리 규칙은 다음과 같습니다.

  • 키가 존재하지 않으면 nil 배열을 반환합니다.
  • 키는 존재하지만 저장된 값이 GEOADD 명령어로 저장된 정렬된 집합 타입이 아니면 에러를 반환합니다.

문법(Syntax)

redis host:port> GEOHASH <keyname> <member> [member]

반환값(Output)

- (배열): 각 멤버에 해당하는 Geohash 문자열 목록
- 에러: 키가 존재하지만 저장된 값이 GEOADD로 생성된 정렬된 집합이 아닌 경우

사용 예제

Redis GEOHASH 명령어 – 지리 공간 데이터의 Geohash 문자열 조회 방법

참고 자료

  1. Redis 공식 문서 – GEOHASH Command Docs

지금까지 Redis 데이터 저장소에 저장된 지리 공간 값의 하나 이상의 요소에 대해 Geohash 문자열을 조회하는 방법을 알아보았습니다. 이 글이 도움이 되셨다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!