微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【Redis】实现附近人功能

01 Redis的Geo

最近在写实现附近人的这个功能,在网上找了很多方案,但是都不尽人意。最后发现了redis已经实现了这个功能支持存储地理位置信息来实现附近位置,摇一摇这类依赖于地理位置信息的功能

02 添加地理位置

geoadd key longitude latitude member

longitude latitude member分别是该地理位置的经度,纬度,成员。

1572839411964255.png

上图是添加了三个地理位置,分别是EE,Xiao,Chui这三个地理位置

03 获取俩地的距离

geodist key member1 member2 [unit]

其中unit代表返回结果的单位,包含以下四种:

·m(meters)代表米。

·km(kilometers)代表公里。

·mi(miles)代表英里。

·ft(feet)代表尺。


下面操作用于计算天津到北京的距离,并以公里为单位

1572839662935585.png

1572839849123068.png

上图是使用高德地图进行计算的,基本是吻合的

04 获取附近的位置

georadiusbymember这里我们使用这个命令,这个命令的参数只需要给出成员即可。

GEORADIUSBYMEMBER  company EE 20 km count 3 asc

1572840155615830.png

这里是获取的EE附近20km的成员

05 地理位置的删除

GEO没有提供删除成员的命令,但是因为GEO的底层实现是zset,所以

可以借用zrem命令实现对地理位置信息的删除

zrem key member

这里只是简单地使用了这个功能下一篇文章使用大量数据来测试性能

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐