疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
  1. 首页
  2. 后端
  3. PHP
  4. 正文

PHP REDIS GEO 经纬度

2023年5月10日 371点热度 0人点赞 0条评论

本文是使用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", "天津", "北京");

 

标签: php
最后更新:2023年5月10日

大明

靠写代码养家的开发者。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1