第 8 章 地理坐标
Redis GEO(即地理坐标) 是 Redis 在 3.2 版本中新添加的特性,通过这一特性,用户可以将经纬度格式的地理坐标存储到 Redis 中,并对这些坐标执行距离计算、范围查找等操作。
地理坐标通常用于与地图和位置相关的程序中,比如 Google 地图就使用经纬度格式的地理坐标来表示地球上的每个位置,例如图9-1所示,而微博、微信、Twitter 等社交应用都内置了与用户位置相关的功能,通过这些功能,用户可以在应用中标明自己所处的位置,查找位于自己附近的其他用户,或者查找位于指定区域内的其他用户,诸如此类。

Figure 1. 图9-1 Google地图的截图,地图中的每个位置都可以使用经纬度来定
Redis 为 GEO 特性提供了一系列命令,通过使用这些命令,用户可以:
-
将位置的名字以及它的经纬度存储到位置集合中。
-
根据给定的位置名字,从位置集合中取出与之相对应的经纬度。
-
计算两个位置之间的直线距离。
-
根据给定的经纬度或位置,找出该位置指定半径范围内的其他位置。
-
获取指定位置的 Geohash 编码值。
本章接下来将对 Redis GEO 特性的各个相关命令进行介绍,并展示如何使用这些命令去构建社交网站的用户地理位置程序。