redis-geo经纬度查询-从进到远的分页
背景:
最近接到一个需求是实现一个附近的人功能,目前几个主流数据库mysql、mongo、redis都有类似的功能,其原理都是建立空间索引再通过空间函数转化坐标点去查询,考虑到查询效率和数据不需要长期持久化,这里选择redis,底层由zset实现。
简单应用:
这里使用Spring自带的spring-data-redis库
- 添加
/**
*
* @param key zsetKey
* @param member 元素
* @param lng 经度
* @param lat 纬度
* @return 影响数量
*/
@Override
public Long geoAdd(String key, Object member, double lng, double lat) {
Long add = defaultRedisTemplate.opsForGeo().add(key, new Point(lng, lat), member