redis的geo搜索功能是3.2之后新增的,所以实验开始之前先查看redis的版本,确保版本正确。
redis的geo多用于地理类应用,所以这次还是用了高德地图API来用作数据源。
首先截取几个点:
geoADD("hangzhou", 120.170206, 30.23549, "xihu");
geoADD("hangzhou", 119.810747, 30.245872, "qinshanghu");
geoADD("hangzhou", 120.331911, 30.389907, "yuhang");
geoADD("hangzhou", 120.299295, 30.196032, "xiaoshang");
geoADD("hangzhou", 120.136989, 30.33214, "gongshu");
这里就选取五个点用作实验。
然后使用代码插入,这里使用的是Redis DeskTop Manager用作管理工具,方便查看调试。
对了,忘记说了,ServiceStack.Redis提供了以下方法来操作GEO
分别是增加数据,测量两点的间距,在数据里找附近的点,找到redis内存的对象,找到该对象的geohash(geohash有多个计算方式,大家可以自行百度)