本文是使用redis 代替資料庫金緯度查詢,由于資料庫金緯度度讓資料庫去做運算影響性能所以下面就介紹了用redis 去使用
redis 中提供了 geo類,使用就行了
$redis = new redis(); $redis->connect('127.0.0.1',6379,1);//短鏈接,本地host,埠為6379,超過1秒放棄鏈接 //$arr = ['aa','bb']; //$redis->lPush('aaaaa', ...$arr); // -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui" //添加地理位置的坐標, //批量 | 單個 //$arr = [117.224311, 39.111515, "天津",116.405285, 39.904989, "北京市"]; //$bool = $redis->geoAdd("city",...$arr); //單個 $bool = $redis->geoAdd("city", 117.224311, 39.111515, "天津"); //獲取地理位置的坐標, $data = $redis->geoPos("city", "天津"); //洗掉 $data = $redis->zRem ("city", "天津"); //計算兩個位置之間的距離, $data = $redis->geoDist("city","天津", "北京","km"); //根據用戶給定的經緯度坐標來獲取指定范圍內的地理位置集合, $data = $redis->geoRadius("city", 117.224311, 39.111515, 1000, "km", ['WITHDIST','ASC']); //根據儲存在位置集合里面的某個地點獲取指定范圍內的地理位置集合, $data = $redis->geoRadiusByMember("city", "天津", 200, "km", ['WITHCOORD', 'WITHDIST', 'ASC']); //回傳一個或多個位置物件的 geohash 值, $data = $redis->geoHash("city", "天津", "北京");
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518707.html
標籤:PHP
上一篇:這個定時任務,我從3min優化到200ms。老板,我盡力了!
下一篇:權限類與頻率類
