ホームページ  >  記事  >  データベース  >  Redis の特別なデータ型地理空間の使用方法

Redis の特別なデータ型地理空間の使用方法

PHPz
PHPz転載
2023-05-26 14:55:06565ブラウズ

Redis の特別なデータ型地理空間地理空間

これは Redis バージョン 3.2 で開始され、地理的位置情報、2 つの場所間の距離、周囲の人々などの計算に使用できます。

1. geoadd

指定された地理空間位置 (緯度、経度、名前) を指定されたキーに追加します。

ここでは、オンラインの緯度と経度のクエリ ツールを使用してデータを取得できます。

geoadd china:city 121.472644 31.231706 shanghai
geoadd china:city 120.619585 31.299379 suzhou
geoadd china:city 116.405285 39.904989 beijing
geoadd china:city 113.280637 23.125178 guangzhou 113.26197 23.10379 haizhuqu

キー china:city に移動し、上海、蘇州、北京、広州、広州海珠区の 5 つの場所の経度と緯度を追加します。

Redis の特別なデータ型地理空間の使用方法

2. geopos

指定されたすべての位置要素の位置 (経度と緯度) をキーから返します。

geopos china:city suzhou shanghai

場所の座標を返します。

Redis の特別なデータ型地理空間の使用方法

3. geodist

指定された 2 つの位置間の距離を返します。

2 つの位置のいずれかが存在しない場合、コマンドは null 値を返します。

単位を指定するパラメータ単位は、次のいずれかの単位である必要があります:

  • m は、単位がメートルであることを意味します (デフォルト)。

  • km は単位がキロメートルであることを意味します。

  • mi は単位がマイルであることを意味します。

  • ft はフィートを意味します。

geodist china:city suzhou shanghai km

Redis の特別なデータ型地理空間の使用方法

4. Georadius

指定された経度と緯度を中心として、キーに含まれる位置要素を返します。および中心 距離が指定された最大距離を超えないすべての位置要素。

georadius china:city 121.49295 31.22337 30 km

上海黄浦区の座標121.49295 31.22337を中心として30km以内の都市を探しています。

Redis の特別なデータ型地理空間の使用方法

さらに 100 km 以内に suzhou を見つけることもできます。withdist を追加して距離を表示します。

追加された withcoord は緯度と経度を返すことができます。

Redis の特別なデータ型地理空間の使用方法

count を加えると、指定した量のみが返されます。

georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1

Redis の特別なデータ型地理空間の使用方法

5. georadiusbymember

このコマンドは georadius コマンドと同じで、指定された範囲内の要素を検索できます。

ただし、ここでは中心点の座標を指定するのではなく、どの要素が中心点であるかを指定します。

georadiusbymember china:city suzhou 100 km withdist

ここでは、要素 suzhou を中心点として、金曜日の 100km 以内にある他の要素を見つけます。

Redis の特別なデータ型地理空間の使用方法

6. geohash

ハッシュで表される 1 つ以上の位置要素。

geohash china:city suzhou shanghai

Redis の特別なデータ型地理空間の使用方法

11 文字の Geohash 文字列を返します。これは、現在の経度と緯度を表す文字列であり、2 次元の経度と緯度を 1 つに変換する別の形式です。 -次元文字列。

上記の構造内の 2 つの文字列が近い場合、2 つの位置間の距離も近くなります。知っておく必要があるのはこれだけです。

地理の基本原理は依然として zset です。zset コマンドを使用して、地理から都市を削除するなど、地理を操作できます。

rreeee

Redis の特別なデータ型地理空間の使用方法

以上がRedis の特別なデータ型地理空間の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。