Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redis GEOADDコマンド徹底解説 – 地理空間データに要素を作成・追加する方法

このチュートリアルでは、Redisのキーに保存された地理空間値(geospatial value)に要素を作成・追加する方法について解説します。ここではGEOADDコマンドを使用します。

GEOADDコマンドとは

GEOADDコマンドは、キーに格納された地理空間値に対して、1つ以上の地理空間メンバーを追加するためのコマンドです。地理空間値とは、このコマンドによって生成されるソート済みセット(sorted set)のことであり、メンバーは後からGEORADIUSやGEORADIUSBYMEMBERコマンドによる半径検索で取得できる形式で格納されます。

ソート済みセットへの登録には「Geohash」と呼ばれる技術が使われています。この技術では、緯度と経度のビットを交互に配置(interleave)することで、一意の52ビット整数を生成します。この52ビット整数は、ソート済みセットにおけるメンバー名に対応するスコアとして保存されます。

地理空間メンバーは、位置に関する3つの情報、すなわち「経度」「緯度」「名前」で構成されます。そのため、GEOADDコマンドで1つのメンバーを追加するには、第1引数に経度、第2引数に緯度、第3引数に名前を指定します。なお、地理空間値に追加できる座標値には制限があり、EPSG:900913 / EPSG:3785 / OSGEO:41001で定められた有効範囲は以下の通りです。

  1. 有効な経度の範囲:-180度〜180度
  2. 有効な緯度の範囲:-85.05112878度〜85.05112878度

この範囲外の座標を追加しようとした場合、コマンドはエラーを返します。

キーがすでにデータストアに存在する場合は、指定されたすべての要素が追加されます。ただし、すでに存在する要素についてはスコアのみが更新され、新規追加としてはカウントされません。キーが存在しない場合は、挿入操作の前に新しいソート済みセットが自動的に作成されます。

構文

redis host:port> GEOADD <keyname> <longitude> <latitude> <name> [longitude latitude name]

戻り値

- (integer): ソート済みセットに新たに追加された要素の数を返します。
  (すでに存在しておりスコアのみが更新された要素は含まれません)
- エラー: キーが存在するものの、その値がGEOADDコマンドで作成された
  ソート済みセットではない場合に返されます。

使用例

Redis GEOADDコマンド徹底解説 – 地理空間データに要素を作成・追加する方法

参考資料

  1. GEOADDコマンド公式ドキュメント(Redis公式サイト)

以上が、Redisデータストア上の地理空間値に要素を作成・追加する方法の解説でした。この記事が役に立ったと感じたら、ぜひコメント欄でご意見をお聞かせください。また、周囲の方々との共有も歓迎します。

<- Geoコマンド一覧へ戻る

  1. Redis GEOHASHコマンドの使い方 – 地理空間データのメンバーからジオハッシュ文字列を取得する方法

    このチュートリアルでは、Redisに保存された地理空間値(ジオスペーシャル値)に含まれる1つまたは複数のメンバー(要素)のGeohash文字列を取得する方法を解説します。この目的には、RedisのGEOHASHコマンドを使用します。 GEOHASHコマンドとは GEOHASHコマンドは、キーに保存された地理空間値の中から指定された1つ以上のメンバーに対して、有効なGeohash文字列を返すためのコマンドです。地理空間値はソート済みセット(sorted set)として表現され、GEOADDコマンドを使って登録されます。 Redisは地理空間要素の位置情報(経度・緯度)を、Geohash技術の変種

  2. Outlookでメール署名を作成・追加する方法【デスクトップ版・Web版対応】

    メールはビジネスにおける中核的なコミュニケーション手段です。メールに署名を追加することで、相手によりプロフェッショナルな印象を与えることができます。本記事では、Office 365ガイドとして、わずか数ステップで署名を設定する方法をご紹介します。なお、署名は専用のOutlookアプリ(デスクトップ版)とOutlook.com(Web版)のどちらでも追加できます。ただし、署名はアカウントと同期されないため、両方のバージョンを使用している場合は、それぞれで署名を作成・設定する必要があります。このガイドでは両方の手順を解説します。Outlook(デスクトップ版)で署名を作成するデスクトップ版のOut