01 Redis的Geo

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

02 添加地理位置

geoadd key longitude latitude member

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

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

03 获取俩地的距离

geodist key member1 member2 [unit]

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

·m(meters)代表米。

·km(kilometers)代表公里。

·mi(miles)代表英里。

·ft(feet)代表尺。

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

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

04 获取附近的位置

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

GEORADIUSBYMEMBER  company EE 20 km count 3 asc

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

05 地理位置的删除

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

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

zrem key member

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

【Redis】实现附近人功能相关推荐

  1. php 利用redis写一个聊天室,Redis实现多人多聊天室功能

    本文为大家分享了Redis支持多人多聊天室功能的设计代码,供大家参考,具体内容如下 设计原理 左边的一个数据域,代表两个聊天室,聊天室id分别是827,729 在聊天室827里,有2个人,分别是jas ...

  2. 基于redis(v3.2+)实现“附近的人”功能

    背景介绍:目前随着电商.社交.游戏和代购等的流行,"附近的人"这一功能提供了一种便捷的方式允许同一地区或者一定距离范围内的用户进行相互交流的途径,一般都是在用户点击某个菜单或按钮时 ...

  3. Redis实现微信“附近的人”功能?,这篇文章作用太大了

    回复[面试题]获取2021年最新java面试题合集- 前言:针对"附近的人"这一位置服务领域的应用场景,常见的可使用PG.MySQL和MongoDB等多种DB的空间索引进行实现.而 ...

  4. “附近的人”功能是如何实现的?

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群https://juejin.im/post/5da40462f265da5baf410a11 针对"附近的人 ...

  5. java redis 流水线_Redis附加功能之Redis流水线pipeline

    流水线功能的目的:通过减少客户端与服务器之间的通信次数来提高程序的执行效率. 一.通信 在一般情况下, 用户每执行一个 Redis 命令,客户端与服务器都需要进行一次通信:客户端会将命令请求发送给服务 ...

  6. Redis实现世界杯排行榜功能(实战)

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:俊俊的小熊饼干 cnblogs.com/wenjunwei/p/9754346.ht ...

  7. 通过Keepalived实现Redis Failover自动故障切换功能(整理中) .

    通过Keepalived实现Redis Failover自动故障切换功能 分类: Linux 2013-06-21 16:44 1049人阅读 评论(1) 收藏 举报 详细可参考http://heyl ...

  8. 附近的人mysql实现_附近的人功能实现及原理

    如何查找当前点(118.818747°E,32.074497°N)附近500米的人? 这一类功能很常见(如微信附近的人.共享单车附近的车辆.美团附近的商家),那在java中是如何实现的呢? 1 实现方 ...

  9. 【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能...

    springboot+redis实现发布订阅功能,实现redis的消息队列的功能 参考:https://www.cnblogs.com/cx987514451/p/9529611.html 思考一个问 ...

  10. 在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能

    1. XMPP协议 与 Openfire XMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档. http: ...

最新文章

  1. usr/bin/ld: cannot find 错误解决方法和 /etc/ld.so.conf
  2. 我的世界服务器无限小号,我的世界惊现全新无限刷物品bug 服主大大都要注意了...
  3. 配置Goldengate支持DDL
  4. lucene4.7 高亮功能(八)
  5. OpenCV——人脸检测
  6. 经典蓝牙和低功耗蓝牙(BLE)有什么区别?
  7. json最大长度限制_api接口返回动态的json格式?我太难了,尝试一下 linq to json
  8. 使用Exchange反垃圾邮件组件解决内部仿冒邮件
  9. 常用服务器安装和部署
  10. PTA-1021—— Deepest Root(最后两组数据错误)
  11. 数据提取、转换和加载 - ETL工具
  12. Eclipse启动无响应 停留在Loading workbench状态的解决办法
  13. 京东官网(京东注册,京东登录,京东首页,京东购物车,京东详情页,京东列表页)
  14. Telink/BDT使用说明
  15. Unity3D C#数学系列之创建圆柱体
  16. 沃邮箱 android,沃邮箱Android客户端产品体验报告
  17. 原生安卓去除网络叉号
  18. 长短期记忆网络(LSTM)简述
  19. 脑在IDE模式下能正常启动,改成AHCI后蓝屏——解决方法
  20. 分布式事物 TCC模式见解

热门文章

  1. net.sf.json.JSONException: Unterminated string at character 1801
  2. ps怎么抠图?教你怎么用钢笔工具抠图
  3. 数字北京城,航行在联通2000M的“大运河”
  4. 实战派来了!聊聊百度智能运维的“前世今生” | 技术沙龙
  5. Promise构造函数的方法1:Promise.resolve()和Promsie.reject()
  6. [Excel函数] AVERAGE函数 | AVERAGEIF函数 | AVERAGEIFS函数
  7. Loss.backward()
  8. 【jiasuba】高效办公 网络应用相关的Excel技巧
  9. 考研计算机专业学校选择,关于学校的选择问题:计算机专业_跨考网
  10. Java多线程运用——赛马小游戏