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

Redis GEORADIUSBYMEMBERコマンドの使い方を実例付きで解説 – Redisチュートリアル

このチュートリアルでは、Redisに保存された地理空間データ(ジオスペーシャル値)の中から、特定の範囲内に含まれる要素を取得する方法を学びます。そのために使用するのが GEORADIUSBYMEMBER コマンドです。

GEORADIUSBYMEMBERコマンドとは

GEORADIUSBYMEMBERコマンドは、キーに保存された地理空間値(ソート済みセット)のメンバーのうち、指定したメンバーの経度・緯度と半径の引数から算出される円形エリアの境界内にある1つ以上のメンバーを返すために使用します。このエリアは、指定したメンバーの経度・緯度を円の中心位置とし、指定した単位による半径を円の半径として計算されます。

半径には、以下のいずれかの単位を指定できます。

  1. m:メートル(デフォルト)
  2. km:キロメートル
  3. mi:マイル
  4. ft:フィート

オプション引数

RedisのGEORADIUSBYMEMBERコマンドは、以下のオプション引数を受け付けます。

  1. WITHDIST: 返された各要素の中心点からの距離を返します。距離の単位は、半径引数で指定した単位と同じになります。
  2. WITHCOORD: 返されたすべての要素の経度・緯度座標を返します。
  3. WITHHASH: 返されたすべての要素の生のGeohash文字列(52ビット符号なし整数)を返します。このGeohashは、ソート済みセットにおける該当要素のスコアです。
  4. ASC: 中心点から近い順(近→遠)に要素をソートして返します。デフォルトでは、要素はソートされていない順序で返されます。
  5. DESC: 中心点から遠い順(遠→近)に要素をソートして返します。
  6. COUNT <count>: 一致する要素のうち、最初の count 件に限定して返します。デフォルトでは、一致するすべての要素が返されます。

戻り値

このコマンドは、以下の種類の値を含む配列を返します。

  1. [WITH]系のオプション引数が指定されていない場合、要素名を含む配列を返します。
  2. WITHCOORDWITHDISTWITHHASH のいずれかのオプションが指定された場合、配列の配列を返します。各サブ配列は1つの要素を表し、サブ配列の最初の項目は必ず要素名となり、その他の情報は以下の順序で返されます。
    1. 中心点からの距離(浮動小数点数)。単位は半径で指定したものと同じです。
    2. Geohash整数。
    3. 座標(2項目のx,y配列:経度、緯度)。

キーが存在しない場合はNilが返されます。また、キーは存在するものの、GEOADDコマンドを使って格納されたソート済みセット型ではない場合は、エラーが返されます。Redis GEORADIUSBYMEMBERコマンドの構文は以下の通りです。

構文:

redis host:post> GEORADIUSBYMEMBER <keyname> <member> <radius> [UNIT] [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

出力:

- (array) reply:地理空間値の要素を表す配列。
- Nil:キーが存在しない場合。
- Error:キーは存在するが、GEOADDコマンドで格納されたソート済みセットではない場合。

使用例:

Redis GEORADIUSBYMEMBERコマンドの使い方を実例付きで解説 – Redisチュートリアル

参考資料:

  1. Redis GEORADIUSBYMEMBERコマンド公式ドキュメント

以上が、Redisデータストアに保存された地理空間値のうち、特定の範囲内に含まれる要素を取得する方法の解説でした。この記事が役に立った場合は、ぜひコメント欄でご意見をお聞かせください。また、他の方へのシェアも歓迎します。

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

  1. Cloudflare WorkersとRedisで実現するエッジコンピューティング活用術

    エッジコンピューティングは、近年もっとも注目されている技術のひとつです。CDNがファイルをユーザーの近くに配置できるようにしたのと同じように、エッジコンピューティングはアプリケーションそのものをユーザーの近くで実行できるようにします。これにより、開発者はグローバルに分散され、高いパフォーマンスを発揮するアプリケーションを構築できるようになります。 Cloudflare Workersとステートレス性の課題 現在この分野をリードしている製品がCloudflare Workersです。コールドスタートのないサーバーレス実行環境を提供し、Cloudflareのグローバルネットワークを活かすことで、ア

  2. Redis(REmote DIctionary Server)とは?基本概念と主な特徴を徹底解説【初心者向けチュートリアル】

    Redisは、BSDライセンスのオープンソースNoSQLデータベースです。データをメインメモリ(RAM)上に格納するインメモリデータベースであり、キーバリューストアという仕組みに基づいて設計されています。また、データ構造ストア(Data Structure Store)とも呼ばれています。 それでは、それぞれの用語をひとつずつ詳しく見ていきましょう。 1. キーバリューストア(Key-Value Store) キーバリューストアとは、データを「キー」と「値」のペアとして保存・取得するデータストレージの方式です。各キーは、データベース内に保存された値を一意に識別する役割を持ちます。Redisは、