UE4 VR开发入门:从零搭建可交互虚拟现实体验框架
2026/7/27 8:45:10
Geo 底层基于 ZSet 有序集合,将经纬度通过 GeoHash 算法转为 52 位整数作为 ZSet 的 score,实现地理位置排序、范围查询。 适用:外卖商家、附近好友、打车点位、门店 LBS 搜索
# 添加门店:成都太古里 geoadd shop:chengdu 104.0730 30.6621 taikuligeopos shop:chengdu taikuli# 计算两个门店距离,单位km geodist shop:chengdu taikuli jinjiangtiandi km# 查询太古里3公里内所有门店 georadiusbymember shop:chengdu taikuli 3 km WITHDIST WITHCOORD ASC COUNT 10参数说明:
geoadd user:loc 经度 纬度 user_idgeoradiusbymember user:loc my_uid 5 km ASC COUNT 20优点:内置 LBS 能力、基于 ZSet 性能高、距离 / 范围查询一条命令完成 缺点:
import redis r = redis.Redis(decode_responses=True) # 添加点位 r.geoadd("shop:cd", 104.0730, 30.6621, "taikuli") r.geoadd("shop:cd", 104.0650, 30.6580, "jinjiang") # 两点距离 print(r.geodist("shop:cd", "taikuli", "jinjiang", unit="km")) # 查询3km内门店 res = r.georadiusbymember("shop:cd", "taikuli", 3, unit="km", withdist=True, sort="ASC") print("附近门店:", res)