首页 » 爱链网 » 超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于)

超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于)

少女玫瑰心 2024-07-23 23:18:10 爱链网 0

扫一扫用手机浏览

文章目录 [+]

userId:要更新位置信息或查询附近的人的用户ID。

---

longitude:新的经度值或查询附近的人时指定的中心经度。

超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于) 超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于) 爱链网
(图片来自网络侵删)

---

latitude:新的纬度值或查询附近的人时指定的中心纬度。

超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于) 超实用!SpringBoot + Redis 实现「查找附近的人」(的人代码查找指定用于) 爱链网
(图片来自网络侵删)

3、获取附近的人

编写一个获取附近的人的接口

其中几个重要属性的含义如下:

Distance:Spring Data Redis中的一个类,用于表示距离。
它可以用于指定搜索半径或者计算两点之间的距离。
在示例代码中,我们创建了一个Distance对象来指定搜索范围的半径,并使用Metrics.KILOMETERS表示以千米为单位的距离。

---

Circle:Spring Data Redis中的一个类,用于表示圆形区域。
它由一个中心点(用Point表示)和一个半径(用Distance表示)组成。
在示例代码中,我们通过传入中心点和距离创建了一个Circle对象,用于定义附近人搜索的圆形区域。

---

GeoResults:Spring Data Redis中的一个类,用于表示地理位置查询的结果。
它包含了一个Content属性,该属性是一个List<GeoResult<GeoLocation<Object>>>类型的列表,其中每个GeoResult对象都包含了地理位置信息以及与该位置相关的其他数据。
在示例代码中,我们通过调用redisTemplate.opsForGeo().radius()方法返回了一个GeoResults对象,其中包含了在指定范围内的所有地理位置结果。

4、完整代码如下

为了用更少的代码片段让大家一目了然,所以都写在controller中,应用在项目里面时最好把其中的实现部分都转移到service中。

总结

SpringDataRedis本身也是对Redis底层命令的封装,所以Jedis里面也提供了差不多的实现,大家可以自己去试一试。

---

如果有redis相关的面试,其实只要说出Redis的Geo命令,面试官就知道你研究过了,而且是可以大大加分的。

---

侧面证明了你对Redis的了解不局限于简单的set、get命令,希望这篇文章对大家有所帮助。

喜欢请点赞关注↓↓↓,持续分享干货哦!

标签:

相关文章