RedisTemplate.opsForGeo()用法简介并举例

RedisTemplate.opsForGeo()是RedisTemplate类提供的用于操作Geo类型(地理位置)的方法。它可以用于对Redis中的Geo数据结构进行各种操作,如添加地理位置、获取距离、获取位置信息等。

下面是一些常用的RedisTemplate.opsForGeo()方法及其用法示例:

  1. add:添加一个或多个地理位置到指定的Geo键中
java 复制代码
redisTemplate.opsForGeo().add("mygeo", new Point(116.397128, 39.916527), "Beijing");
redisTemplate.opsForGeo().add("mygeo", new Point(121.472641, 31.231707), "Shanghai");
redisTemplate.opsForGeo().add("mygeo", new Point(113.264435, 23.129163), "Guangzhou");
  1. position:获取指定成员的地理位置
java 复制代码
Point position = redisTemplate.opsForGeo().position("mygeo", "Beijing");
  1. distance:计算两个成员之间的距离(默认以米为单位)
java 复制代码
Distance distance = redisTemplate.opsForGeo().distance("mygeo", "Beijing", "Shanghai");
double distanceInKm = distance.getValue() / 1000;
  1. hash:获取指定成员的Geohash值
java 复制代码
String geohash = redisTemplate.opsForGeo().hash("mygeo", "Beijing");
  1. radius:根据给定的中心点,返回与中心点距离在指定范围内的成员(按距离由近到远排序)
java 复制代码
Circle circle = new Circle(new Point(116.397128, 39.916527), new Distance(200, Metrics.KILOMETERS));
GeoResults<GeoLocation<Object>> geoResults = redisTemplate.opsForGeo().radius("mygeo", circle);
  1. radiusByMember:根据给定的成员,返回与该成员距离在指定范围内的其他成员(按距离由近到远排序)
java 复制代码
GeoResults<GeoLocation<Object>> geoResults = redisTemplate.opsForGeo().radiusByMember("mygeo", "Beijing", new Distance(200, Metrics.KILOMETERS));
  1. remove:从指定的Geo键中移除一个或多个成员
java 复制代码
Long removedMembers = redisTemplate.opsForGeo().remove("mygeo", "Beijing", "Shanghai");

这些示例展示了一些redisTemplate.opsForGeo()方法的常见用法,你可以根据具体的业务需求选择适合的方法进行操作。

请注意,示例中的"mygeo"是Geo键的名称,"Beijing"、"Shanghai"等是地理位置对应的成员名。

相关推荐
陈小桔33 分钟前
idea中重新加载所有maven项目失败,但maven compile成功
java·maven
小学鸡!34 分钟前
Spring Boot实现日志链路追踪
java·spring boot·后端
xiaogg36781 小时前
阿里云k8s1.33部署yaml和dockerfile配置文件
java·linux·kubernetes
逆光的July1 小时前
Hikari连接池
java
微风粼粼1 小时前
eclipse 导入javaweb项目,以及配置教程(傻瓜式教学)
java·ide·eclipse
番茄Salad1 小时前
Spring Boot临时解决循环依赖注入问题
java·spring boot·spring cloud
天若有情6732 小时前
Spring MVC文件上传与下载全面详解:从原理到实战
java·spring·mvc·springmvc·javaee·multipart
祈祷苍天赐我java之术2 小时前
Redis 数据类型与使用场景
java·开发语言·前端·redis·分布式·spring·bootstrap
Olrookie3 小时前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
倚栏听风雨3 小时前
java.lang.SecurityException异常
java