基于位置信息服务的LBS应用访问数据是和人或者是物的一组经纬度信息,而且要能查询相邻的经纬度范围,GEO 就适合应用这样的场景
底层结构
GEO 底层就是采用Sorted Set 实现的,通过 GeoHash 编码方式对经纬度进行GeoHash编码,然后再将经纬度各自的编码组合成一个最终编码。GEO 类型吧经纬度所在的区间最为Sorted Set 中元素的权重分数,把和经纬度相关的信息作为Sorted Set 中的元素本身的值保存下来
GEO 操作
- GEOADD 命令:把经纬度信息和对应的一个ID记录到GEO类型中
- GEORADIUS 命令:根据输入的经纬度位置,查找以这个经纬度为中心的一定范围内的其他元素。
GEO操作实例
- 将 ID 为 33 的车辆当前的经纬度存入GEO中
GEOADD cars:locations 116.034579 39.030452 33
- 查找以(116.054579,39.030452)经纬度为中心的 5 公里内的车辆信息
GEORADIUS cars:locations 116.054579 39.030452 5 km ASC COUNT 10
