PHP 操作 Redis GeoHash 地理位置
2020-07-10 本文已影响0人
王宣成
<?php
//连接reids
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
//增加地理位置
$redis->rawCommand('geoadd','company','116.48105','39.996794','juejin');
$redis->rawCommand('geoadd','company','116.514203','40.905409','ireader');
$redis->rawCommand('geoadd','company','116.489033','40.007669','meituan');
$redis->rawCommand('geoadd','company','116.562108','39.787602','jd');
//删除地理位置
//geo使用zset结构,使用zrem删除指令即可
//计算距离
$res = $redis->rawCommand('geodist','company','juejin','meituan','km');
echo "<pre>";
var_dump($res);
echo '<br />';
//获取元素地理位置
$res = $redis->rawCommand('geopos','company','juejin');
var_dump($res);
echo '<br />';
//范围20公里最多三个元素按距离正排
$res = $redis->rawCommand('georadiusbymember','company','juejin','20','km','count','3','asc');
var_dump($res);
echo '<br />';
//范围20公里最多三个元素按距离倒排
$res = $redis->rawCommand('georadiusbymember','company','juejin','20','km','count','3','desc');
var_dump($res);
echo '<br />';
//三个可选参数 withcoord withdist withhash 用来携带附加参数
// withdist 显示距离
$res = $redis->rawCommand('georadiusbymember','company','juejin','20','km','withcoord','withdist','withhash','count','3','desc');
var_dump($res);
echo '<br />';
//附近元素
$res = $redis->rawCommand('georadius','company','116.514202','39.905409','20','km','withdist','count','3','asc');
var_dump($res);
echo '<br />';