Rumah >pangkalan data >Redis >Redis jenis data khas Geospatial
Dalam artikel sebelumnya "Redis strim jenis data khas", saya memperkenalkan anda kepada kandungan yang berkaitan tentang strim jenis data Artikel ini membawakan anda Redis Satu lagi jenis data Geospatial, mari kita lihat, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: Tutorial video Redis
Kita semua tahu Redis Menyediakan pelbagai jenis data, termasuk empat yang istimewa: BitMap, HyperLogLog, Geospatial dan Stream.
Hari ini kita akan bercakap secara terperinci tentang Geospatial, salah satu daripada empat jenis data khas Redis
Senario aplikasi: Senario untuk menyimpan maklumat lokasi geografi, seperti Didi ride-hailing; >
# 存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。 GEOADD key longitude latitude member [longitude latitude member ...] # 从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。 GEOPOS key member [member ...] # 返回两个给定位置之间的距离。 GEODIST key member1 member2 [m|km|ft|mi] # 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]Senario aplikasi
Teksi Didi
Di sini kami mengambil senario panggilan teksi Didi sebagai contoh untuk memperkenalkan cara menggunakan arahan GEO: GEOADD dan GEORADIUS. Dengan mengandaikan bahawa ID kenderaan ialah 33 dan lokasi latitud dan longitud ialah (116.034579, 39.030452), kita boleh menggunakan koleksi GEO untuk menyimpan latitud dan longitud semua kenderaan, dan kunci koleksi ialah cars:locations . Laksanakan arahan berikut untuk menyimpan kedudukan longitud dan latitud semasa kenderaan dengan nombor ID 33 ke dalam koleksi GEO:GEOADD cars:locations 116.034579 39.030452 33Apabila pengguna ingin mencari temu janji dalam talian berdekatan dengannya Semasa memandu, aplikasi LBS boleh menggunakan arahan GEORADIUS. Sebagai contoh, apabila aplikasi LBS melaksanakan perintah berikut, Redis akan mencari maklumat kenderaan dalam jarak 5 kilometer berpusat pada longitud dan latitud ini berdasarkan maklumat latitud dan longitud pengguna input (116.054579, 39.030452), dan kembali kepada aplikasi LBS.
GEORADIUS cars:locations 116.054579 39.030452 5 km ASC COUNT 10Pembelajaran yang disyorkan:
Atas ialah kandungan terperinci Redis jenis data khas Geospatial. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!