Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。
Redis GEO 操作方法有:
- geoadd:添加地理位置的坐标。
- geopos:获取地理位置的坐标。
- geodist:计算两个位置之间的距离。
- georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
- georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
- geohash:返回一个或多个位置对象的 geohash 值。
下面是简单例子:
$redis = new \Redis();
//增加两个位置的经纬度 a,b
$redis->geoadd('demo',114.03587211582945,22.663998990300417,'a');
$redis->geoadd('demo',114.03435934994505,22.665820644352582,'b');
//计算两个位置之间的距离 默认单位是米
echo $redis->geodist('demo','a','b','m');
//输出结果为 255.1134
//计算在指定经纬度300米之内的元素
$redis->georadius('demo',114.03587211582945,22.663998990300417,300,'m');