Redis GEODISTコマンド徹底解説 – 地理空間データの2つのメンバー間の距離を取得する方法
このチュートリアルでは、キーに保存された地理空間値(ジオスペーシャルデータ)の2つのメンバー間の距離を取得する方法について学びます。この目的のために、RedisのGEODISTコマンドを使用します。
GEODISTコマンドとは
GEODISTコマンドは、キーに保存された地理空間値(ソート済みセット)のうち、指定した2つのメンバー間の距離を、指定した単位で返すために使用されます。指定されたメンバーの一方または両方が地理空間値に存在しない場合は、nullが返されます。
指定できる単位は以下の4種類です。
- m:メートル(デフォルト)
- km:キロメートル
- mi:マイル
- ft:フィート
キーが存在しない場合はnilが返され、キーは存在するものの、そのキーに保存されている値がGEOADDコマンドを使って作成されたソート済みセット型でない場合は、エラーが返されます。
構文
redis host:post> GEODIST <keyname> <member-1> <member-2> [unit]
戻り値
- (string) 指定した単位での距離を表す文字列 - キーが存在しない場合は nil - キーは存在するが、GEOADDコマンドで作成されたソート済みセットではない場合はエラー
使用例
以下は、GEODISTコマンドを使用して2地点間の距離を取得する実行例です。単位を指定しない場合はメートル単位で結果が返され、「km」などの単位を指定するとその単位に変換された距離が取得できます。
redis> GEOADD locations 139.767125 35.681236 Tokyo (integer) 1 redis> GEOADD locations 135.501291 34.693725 Osaka (integer) 1 redis> GEODIST locations Tokyo Osaka km "396.0245"
上記の例では、東京と大阪の座標をGEOADDで登録し、GEODISTによって2都市間の距離を約396kmとして取得しています。
まとめ
以上が、Redisデータストアに保存された地理空間値の2つのメンバー間の距離を取得する方法でした。位置情報を扱うアプリケーションにおいて、GEODISTは近隣検索や移動距離の計算など、さまざまなユースケースで活用できる便利なコマンドです。この記事が役に立ったら、コメント欄で感想を共有したり、他の方にもシェアしていただけると嬉しいです。
参考資料
- Redis公式ドキュメント:GEODISTコマンド
-
Redis GEOPOSコマンドの使い方 – 地理空間データからメンバーの経度・緯度を取得する方法
このチュートリアルでは、Redisに保存された地理空間値(ジオ空間データ)から、1つまたは複数のメンバーの経度・緯度を取得する方法を解説します。この操作には、RedisのGEOPOSコマンドを使用します。 GEOPOSコマンドとは GEOPOSコマンドは、キーに保存された地理空間値(ソート済みセット)の中から、指定した1つ以上のメンバーの経度・緯度を返すためのコマンドです。 GEOADDコマンドで座標(経度・緯度)を地理空間値に挿入する際、それらの値は52ビットのGeohashに変換されます。そのため、GEOPOSで取得される座標は、挿入時に入力した値と完全に一致するとは限らず、わずかな誤差が
-
Redisでキーに文字列値を設定する方法を徹底解説 – SET / SETNX / SETEX / PSETEX コマンドの使い方
このチュートリアルでは、Redisのデータストア上で指定したキーに文字列値を設定する方法について、SET、SETNX、SETEX、PSETEX の4つのコマンドを使って詳しく解説します。それぞれのコマンドの動作の違いや使い分けのポイントもあわせて紹介するので、Redisの文字列操作をマスターしたい方はぜひ参考にしてください。 SETコマンドとは SETコマンドは、指定したキーに文字列値を設定するための最も基本的なコマンドです。キーがすでに存在する場合は、その型に関係なく値が上書きされます。また、キーに設定されていた以前の有効期限(TTL)も削除される点に注意が必要です。 SETコマンドのオプシ