文章目录1、GEOHash——如何“摇一摇”1-1、为什么需要GEOHash1-2、什么是GEOHash1-3、GEOHash编码的简易原理1-4、GEOHash的边缘问题2、Redis中GEOHash的应用GEOADD:增加地理位置的坐标(支持批量操作)GEOPOS:获取地理位置的坐标(支持批量操作)GEODIST:获取两个地理位置的距离GEORADIUS:根据给定地理位置坐标获取指定范围内的
转载
2023-11-23 13:48:53
127阅读
这次跟门子轩写了个查找附近的人,功能是使用同一软件的人可以将地理位置信息上传到服务器,其他人可通过查找的功能将指定距离内的人的相关信息(包括地理位置信息)查找出来。其实没什么技术含量,整个工程中最核心的地方就是用到了百度地图提供的lbs接口,通过这个接口访问百度地图提供的数据库,可以实现对表的增删改查等命令,也可以精确的计算gps之间的距离。工程分为服务器与客户端,客户端可以上传GPS信息,服务器
转载
2023-06-30 23:46:07
117阅读
笔者之前文章介绍过geohash算法,那么今天,我们来讲一下Redis的geo功能。 GeoHash与Z阶曲线的关系 1 引言“附近的人”在社交类APP已成为标配的功能,简单一点的实现方式可以把坐标存至关系型数据库,通过计算的坐标点距离实现,这种计算可行但计算速度远不及内存操作级别的NoSql数据库。基于Redis的geo就可以轻松实现。2 Redis处理位置坐标点的思路Redis中经纬
转载
2023-09-30 23:30:32
105阅读
一、查询附近人:Geo指令,底层是普通的zst结构,提供7个命令1)添加指令:geoadd 指令携带集合名称以及多个经纬度名称三元组,注意这里可以加入多个三元组geoadd company 116.48105 39.996794 juejin2)计算距离:geodist 指令可以用来计算两个元素之间的距离,携带集合名称、2 个名称和距离单位geodist company juejin ireade
转载
2023-10-16 13:52:00
106阅读
之前分享过一篇《使用geohash实现查找附近的人》,其实redis在3.2版本之后也提供了地理位置的能力。geoadd命令该命令是添加地理位置信息,基本格式是:基于Redis实现查找附近的人 key:键名 longitude:经度 latitude:纬度 member:该位置名字 举个例子,我现在要添加福州的软件园的地理位置。首先我通过某歌地图搜索到软件园,右键地点,点击“这儿有什么”,就会弹出
转载
2023-07-11 20:37:44
162阅读
背景介绍:目前随着电商、社交、游戏和代购等的流行,“附近的人”这一功能提供了一种便捷的方式允许同一地区或者一定距离范围内的用户进行相互交流的途径,一般都是在用户点击某个菜单或按钮时记录用户的坐标信息,拿微信的“附近的人”功能举例子,如下图所示,当你在点击附近的人时微信服务端会提示获取你所在位置的经纬度,记录到服务端,右上角的小脚印就表示你的经纬度信息被记录。然后服务端会根据你的位置信息拉取附近同样
转载
2023-08-31 16:17:50
7阅读
介绍早在15年的 Redis 3.2 开始就已提供了 GEO 相关方法,可用来实现 LBS 搜索:geoadd:增加某个地理位置的坐标geopos:获取某个地理位置的坐标geodist:获取两个地理位置的距离georadius:根据给定地理位置坐标获取指定范围内的地理位置集合。georadiusbymember:根据给定地理位置获取指定范围内的地理位置集合geohash:获取某个地理位置的 geo
转载
2023-11-07 14:20:57
67阅读
1|0 前言在我们平时使用的许多app中有附近的人这一功能,像微信、qq附近的人,哈罗、街兔附近的车辆。这些功能就在我们日常生活中出现。像类似于附近的人这一类业务,在Java中是如何实现的呢?本文就简单介绍下目前的几种解决方案,并提供简单的示例代码注: 本文仅涉及附近的人这一业务场景的解决方案讨论,并未涉及到相关的技术细节和方案优化,各位看官可以放心阅读。2|0基本套路和方案目前业内的解决方案大都
转载
2024-07-27 17:28:02
219阅读
计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是推荐算法中一个关键部分 ,相似性的度量可以通过计算距离来实现在做很多研究问题时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 本文的目的就是对常用
转载
2024-10-09 20:15:54
30阅读
# 使用Java计算附近的人
在移动互联网快速发展的时代,基于地理位置的应用程序变得越来越普遍,比如社交应用、打车软件等。其中,计算用户附近的人是一项常见的功能。在这篇文章中,我们将介绍如何使用Java来实现这一功能,并附上代码示例,辅助以甘特图与状态图帮助大家更好地理解。
## 方法概述
计算用户附近的人通常需要以下几个步骤:
1. 获取用户的当前位置
2. 获取其他用户的位置信息
3.
各种社交软件里面都有附件的人的需求,在该应用中,我们查询附近 1 公里的食客,同时只需查询出 20 个即可。解决基于地理位置的搜索,很多数据库品牌都支持:MySQL、MongoDB、Redis 等都能支持地理位置的存储。
当用户登录应用时,或者保持用户登录后用户在使用应用时,客户端是可以时刻获取用户位置信息的(前提是用户要开启位置获取的权限),客户端获取到最新的地理位置后,上传到后端服务器进行更
原创
2021-06-24 14:57:32
606阅读
针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基本的是要实现“增”、“删”、“查”的功能。以下将分别进行介绍,其中会重点对查询
转载
2023-09-19 05:51:24
246阅读
针对“附近的人”这一位置服务领域的应用场景,常见的可使用 PG、MySQL 和 MongoDB 等多种 DB 的空间索引进行实现。 图片来自 Pexels而 Redis 另辟蹊径,结合其有序队列 ZSET 以及 GEOHASH 编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基本的是要实现“增”
转载
2023-11-23 13:22:55
84阅读
文章目录前言GeoHash 算法简介常用命令 前言Redis 在 3.2 版本以后增加了地理位置 Geo 模块,意味着我们可以使用 Redis 来实现类似摩拜单车的“附近的共享单车”和微信“附近的人”这样的功能了。Redis 中 Geo 指令使用的是业界比较通用的地理位置距离排序算法 GeoHash 。GeoHash 算法简介GeoHash算法将二维的经纬度数据映射到一维的整数,这样所有的元素都
转载
2023-09-08 21:57:19
71阅读
# Java + Redis Geo 实现“附近的人”功能
在现代的应用开发中,地理信息的处理越来越重要。使用 Redis 的 Geo 功能,可以轻松实现“附近的人”这一功能。本文将介绍如何在 Java 中使用 Redis Geo API 来获取当前位置附近的人,并详细解析每一步的实现。
## 文章结构
1. 流程概述
2. 环境准备
3. 步骤详解
- 3.1. 添加用户位置
# 使用 Java 和 Redis 实现查找附近的人
在当今的移动互联网时代,“附近的人”功能已经成为许多社交应用的标配。这种功能一般会基于用户的位置来推荐周围的人,提供更好的社交体验。本文将通过一个简单的示例,介绍如何使用 Java 和 Redis 来实现查找附近人的功能。
## 一、项目背景
在本示例中,我们将使用 Redis 来存储用户的位置信息,利用 GeoHash 编码来快速查找附
引言昨天一位公众号粉丝和我讨论了一道面试题,个人觉得比较有意义,这里整理了一下分享给大家,愿小伙伴们面试路上少踩坑。面试题目比较简单:“让你实现一个附近的人功能,你有什么方案?”,这道题其实主要还是考察大家对于技术的广度,本文介绍几种方案,给大家一点思路,避免在面试过程中语塞而影响面试结果,如有不严谨之处,还望亲人们温柔指正!“附近的人” 功能生活中是比较常用的,像外卖app附近的餐厅,共享单车a
转载
2024-10-22 17:09:55
19阅读
1. XMPP协议 与 OpenfireXMPP协议是IM领域的标准协议了,具体可参考 http://xmpp.org 及RFC6120,RFC6121,RFC6122等相关文档。 http://xmpp.org/xmpp-protocols/ XMPP协议实现,开源的也很多,server端可参考 http://xmpp.org/xmpp
转载
2024-05-22 16:12:29
27阅读
简介Redis 3.2 版本提供了GEO(地理信息定位)功能,支持存储地理位置信息用来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能,对于需要实现这些功能的开发者来说是一大音。GEO功能是 Redis 的另一位作者Matt Stancliff 借鉴 NoSQL 数据库 Ardb 实现的,Ardb 的作者来自中国,它提供了优秀的GEO功能。相关命令增加地理位置信息GEOADD自3.2.0可用
转载
2023-05-25 15:29:21
74阅读
最近在做一款交友软件的APP,现在有一个功能需要实现搜索附近的人。后来发现用redis 的GEO功能实现非常简。先说一下设计思路,每个用户在登陆的时候都会添加一下经纬度,这个是APP端获取的,然后设置一下这个经纬度到mysql数据库中,最后把经纬度同步到redis数据库中。我们先来了解一下 redis GEO功能。geoadd:增加某个地理位置的坐标。GEOADD key longitude l
转载
2023-11-01 15:56:08
128阅读