php redis 根据经纬度 计算当前用户附近店铺信息

php redis 根据经纬度 计算当前用户附近店铺信息

1.redis 版本:Redis 在 3.2 版本以后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」、美团和饿了么「附近的餐馆」这样的功能了

2.Redis GEO实现主要包含了以下两项技术:
2.1、使用geohash保存地理位置的坐标。
2.2、使用有序集合(zset)保存地理位置的集合。

3.gaoadd 添加 经纬度 到 数据集

redis> GEOADD  redis_key  经度1 纬度1 "位置名称1"   经度2 纬度2  "位置名称2"
 
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"

4.php 批量插入数据集

//伪数据   
 $data = [
       [
           'lng' => '116.1021',
           'lat' => '39.5928',
           'name'=> '阿里小贩'
        ],
        [
            'lng' => '112.5607',
            'lat' => '34.2331',
            'name'=> '腾讯小贩'
        ]
    ];
 
$obj = new Redis();
$obj->connect('127.0.0.1', '6379');
 $redis_key = "redis:test:2020":   
 $obj->pipeline();
 foreach ($data as $k => value) {
		$obj->geoadd($redis_key,$value['lng'],$value['lat'],$value['name']);       
  }
 $obj->->exec();

5.php 获取用户:lng:116.514202 lat:39.90540 附近20km 的商户

$list = $obj->georadius($redis_key,116.514202,39.90540,20,'km');

参考:1:https://www.cnblogs.com/wt645631686/p/8454497.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值