これは Redis バージョン 3.2 で開始され、地理的位置情報、2 つの場所間の距離、周囲の人々などの計算に使用できます。
指定された地理空間位置 (緯度、経度、名前) を指定されたキーに追加します。
ここでは、オンラインの緯度と経度のクエリ ツールを使用してデータを取得できます。
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 つの場所の経度と緯度を追加します。
指定されたすべての位置要素の位置 (経度と緯度) をキーから返します。
geopos china:city suzhou shanghai
場所の座標を返します。
指定された 2 つの位置間の距離を返します。
2 つの位置のいずれかが存在しない場合、コマンドは null 値を返します。
単位を指定するパラメータ単位は、次のいずれかの単位である必要があります:
m は、単位がメートルであることを意味します (デフォルト)。
km は単位がキロメートルであることを意味します。
mi は単位がマイルであることを意味します。
ft はフィートを意味します。
geodist china:city suzhou shanghai km
指定された経度と緯度を中心として、キーに含まれる位置要素を返します。および中心 距離が指定された最大距離を超えないすべての位置要素。
georadius china:city 121.49295 31.22337 30 km
上海黄浦区の座標121.49295 31.22337を中心として30km以内の都市を探しています。
さらに 100 km 以内に suzhou
を見つけることもできます。withdist
を追加して距離を表示します。
追加された withcoord
は緯度と経度を返すことができます。
に count
を加えると、指定した量のみが返されます。
georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
このコマンドは georadius コマンドと同じで、指定された範囲内の要素を検索できます。
ただし、ここでは中心点の座標を指定するのではなく、どの要素が中心点であるかを指定します。
georadiusbymember china:city suzhou 100 km withdist
ここでは、要素 suzhou
を中心点として、金曜日の 100km 以内にある他の要素を見つけます。
ハッシュで表される 1 つ以上の位置要素。
geohash china:city suzhou shanghai
11 文字の Geohash 文字列を返します。これは、現在の経度と緯度を表す文字列であり、2 次元の経度と緯度を 1 つに変換する別の形式です。 -次元文字列。
上記の構造内の 2 つの文字列が近い場合、2 つの位置間の距離も近くなります。知っておく必要があるのはこれだけです。
地理の基本原理は依然として zset です。zset コマンドを使用して、地理から都市を削除するなど、地理を操作できます。
rreeee以上がRedis の特別なデータ型地理空間の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。