Redis系统学习之三种特殊数据类型(geospatial(地理位置))
geospatial(地理位置)
- 朋友的定位,附近的人,打车距离计算,主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。
- 查询城市经纬度网址:http://www.hao828.com/chaxun/zhongguochengshijingweidu/index.asp?key=%B9%E3%B0%B2&submit=%B2%E9%D1%AF
添加地理位置
- geoadd key 经度 纬度 城市名称[多个添加,经纬度城市名称循环]
- 两级(南极和北极)无法添加,一般通过程序导入
- 添加北京位置
- 添加河北和上海位置
获取地理位置
- geopos key value
- 获取北京和上海的位置
计算两个位置之间的距离(直线距离[笑哭,谁会查直线距离])
- geodist key 位置1 位置2 [m|km|ft|mi](单位)
- m :米,默认单位。
- km :千米。
- mi :英里。
- ft :英尺。
- 计算河北和北京之间的距离,单位为千米
以指定的经纬度为中心,找出某一半径内的元素
- GEORADIUS key 维度 经度 半径长度 m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
- GEORADIUSBYMEMBER key 位置名称 .... 和上面的georadius一样 只不过是把经纬度换成了已存在的地理位置名称
- m :米,默认单位。
- km :千米。
- mi :英里。
- ft :英尺。
- WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。
- WITHCOORD: 将位置元素的经度和维度也一并返回。
- WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
- COUNT 限定返回的记录数。
- ASC: 查找结果根据距离从近到远排序。
- DESC: 查找结果根据从远到近排序。
- 搜索经度110 维度30 附近1000km内的位置,或者2000米的位置
- 可以用于做附近的人,比如附近100m内的玩家XXX,感觉王者是不是这么做的
返回一个或多个地理位置的11位的哈希值(一般用不到)
- geohash key value[value循环,多个空格拆分]
其他命令,底层是用Zset实现的,可以用zset的删除和查看等命令
- 查看
- 删除
- .......
使用场景
- 计算两地之间的直线距离
- 存储地理位置
- 实现位置的附近人功能
作者:彼岸舞
时间:2021\05\05
内容关于:Redis
本文属于作者原创,未经允许,禁止转发
分类:
Redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」