复述,提供了地理位置信息(GEO)功能,有了他就可以完成附近的人,摇一摇等功能。首先,介绍下地理的相关API。
<强> 强>
经度纬度geoadd关键成员(经度纬度成员……)
- <李>
经度:经度
李> <李>纬度:纬度
李> <李>成员:成员
李>该命令可以一次添加一个或多个成员
有一些用户,都在合肥,现在把他们的地理坐标都存放在复述里。
- <李>
小在家里看电视,他家的坐标为:117.230279,31.81676
李> <李>小B在公司加班,公司的坐标为:117.229704,31.824676
李> <李>小C在出差,他出差的地址坐标为:117.300419,31.696095
李> <李>小D在家带娃,他家的地址坐标为:117.192909,31.732465
李> <李>小E还在上,学他学校地址坐标为:117.189604,31.838297
李>127.0.0.1:6379>117.230279 31.81676 117.229704 31.824676 b geoadd位置 (整数)2 127.0.0.1:6379>geoadd位置117.300419 - 31.696095 c (整数)1 127.0.0.1:6379>117.192909 - 31.732465 d geoadd位置 (整数)1 127.0.0.1:6379>117.189604 - 31.838297 e geoadd位置 (整数)1
<强> 强>
geodist关键member1 member2(单位)
单元有四个单位
- <李>
& # 39;猴# 39;=比;李米
> <李>& # 39;公里# 39;=比;李千米
> <李>& # 39; mi # 39;=比;李英里
> <李>& # 39;英国《金融时报》# 39;=比;李尺
>我们主要会用到米以及千米。
现在我们来看看小一和小B之间的距离
127.0.0.1:6379>GEODIST位置b公里 “0.8821“
可以看到小一和小B之间有千0.88米
再来看看小C和小E之间的距离
127.0.0.1:6379>GEODIST位置c e公里 “18.9728“
他们之间相差将近19千米。
<强> 强>
geopos关键成员(成员……)
来看下小D的所在地址的经纬度信息
127.0.0.1:6379>geopos d位置 1)1)“117.19290822744369507”; 2)“31.73246441933707018“
<强> 强>
georadius关键经度纬度radiusm公里| |英尺英里[withcoord] [withdist] [withhash][数计数][asc | desc][存储关键][storedist关键]georadiusbymember关键成员radiusm公里| |英尺英里[withcoord] [withdist] [withhash][数计数][asc | desc][存储关键][storedist关键]
这两个命令相比其他的稍显复杂。我们一起来看看这两个命令。
这两个命令功能基本相似,主要的区别是,第一个命令给出的是具体的经纬度,而第二个命令则只给出了成员名。比如,我想知道成员离合肥大蜀山的距离,因为大蜀山经纬度信息还没有存放在复述中,所以,我们就需要用第一条命令,将大蜀山的经纬度输入即可。又如,其他成员离一所小在坐标的距离,那么就可以使用第二条命令,直接输入成员小一个即可。
<强> radiusm及后面的单位是必填信息,指定在半径距离多少范围内搜索。强>
合肥大蜀山的坐标是117.175571,31.846746
#查看离大蜀山10公里的成员有哪些 127.0.0.1:6379>117.175571 - 31.846746 10公里GEORADIUS位置 1)“e" 2)“a" 3)“b"
可以看到小e,小一及小b离大蜀山比较近,在10公里内。
<强> WITHCOORD:将位置元素的经度和维度也一并返回强>
127.0.0.1:6379>117.175571 - 31.846746 10公里withcoord GEORADIUS位置 1)1)“e" 2)1)“117.18960374593734741”; 2)“31.83829663190295634”; 2)1)“a" 2)1)“117.23027676343917847”; 2)“31.81675910621205361”; 3)1)“b" 2)1)“117.22970277070999146”; 2)“31.8246750403926697“
可以看的到,除了给出了成员外,成员的位置信息页一并给出了
<强> withdist:返回结果中包含离中心节点位置的距离强>
127.0.0.1:6379>GEORADIUS位置117.175571 - 31.846746 10公里withcoord withdist 1)1)“e" 2)“1.6252”; 3)1)“117.18960374593734741”; 2)“31.83829663190295634”; 2)1)“a" 2)“6.1522”; 3)1)“117.23027676343917847”; 2)“31.81675910621205361”; 3)1)“b" 2)“5.6737”; 3)1)“117.22970277070999146”; 2)“31.8246750403926697“
可以看到小E离大蜀山千1.62米,小一个离大蜀山千6.15米,小B离大蜀山千5.67米。