Redis是一个功能强大的键-值存储,同时它也支持地理位置数据的存储和查询.Redis的地理位置功能使用了基于经纬度的计算公式,可以实现各种地理位置应用,比如附近的人、附近的商家、车辆追踪等等.
下面就是一个Redis地理位置的存储方法攻略,并包含了相关的代码示例.
首先需要先安装Redi.
此时此刻呢使用redis-cli命令连接Redis服务器,这里连接本地服务器.
然后,使用Redis的geoadd命令可以设置地理位置数据,语法如下:
geoadd key longitude latitude member [longitude latitude member ...]
其中,key表示键名,longitude表示经度,latitude表示纬度,member表示地理位置标识符,一个key可以对应多个地理位置,例如:
geoadd cities 11⑥46 39.92 beijing 121.48 31.22 shanghai 11③26 2③13 guangzhou
使用Redis的geopos命令可以获取地理位置数据,语法如下:
geopos key member [member ...]
其中,key表示键名,member表示地理位置标识符,可以同时获取多个地理位置的坐标,例如:
geopos cities beijing shanghai guangzhou
上述命令会返回三个地理位置的经纬度坐标.
使用Redis的geodist命令可以计算地理位置之间的距离,语法如下:
geodist key member1 member2 [unit]
geodist cities beijing shanghai
上述命令会返回北京和上海之间的距离,单位为米.
使用Redis的georadius和georadiusbymember命令可以查找附近的地理位置,其中georadius命令是根据中心地理位置和半径范围来查找附近地理位置,georadiusbymember命令是根据指定的地理位置和半径范围来查找附近地理位置.
通过中心地理位置和半径范围查找附近地理位置
使用Redis的georadius命令可以根据中心地理位置和半径范围来查找附近地理位置,语法如下:
georadius key longitude latitude radius unit [withcoord] [withdist] [count] [asc|desc] [store key] [storedist key]
其中,key表示键名,longitude表示经度,latitude表示纬度,radius表示半径范围,unit表示距离单位,withcoord表示是否返回坐标,withdist表示是否返回距离,count表示返回结果数量,asc和desc表示排序方式,store表示是否将结果存储到另一个键中.
例如:
georadius cities 11⑥46 39.92 100 km withcoord withdist count 10 asc
通过指定地理位置和半径范围查找附近地理位置
使用Redis的georadiusbymember命令可以根据指定的地理位置和半径范围来查找附近地理位置,语法如下:
georadiusbymember key member radius unit [withcoord] [withdist] [count] [asc|desc] [store key] [storedist key]
其中,key表示键名,member表示地理位置标识符,radius表示半径范围,unit表示距离单位,withcoord表示是否返回坐标,withdist表示是否返回距离,count表示返回结果数量,asc和desc表示排序方式,store表示是否将结果存储到另一个键中.
georadiusbymember cities beijing 100 km withcoord withdist count 10 asc
上述命令表示在以北京为中心,以100公里半径范围内查找附近的地理位置,并返回前10个结果,按距离从近到远排序.
综合上面所讲的,这就是Redis地理位置的完整攻略,通过这些命令可以实现各种地理位置应用.
以上就是土嘎嘎小编为大家整理的Redis地理位置数据的存储方法相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!