《Redis GeoHash:实现附近的人功能(附代码)》(672)

# 🌍 Redis GeoHash:轻松实现「附近的人」功能(附代码) 

在社交、外卖、打车等应用中,「附近的人」功能十分常见。Redis 的 **GeoHash** 正是为此而生!它通过将经纬度编码为字符串,高效存储和查询地理位置数据。 

## 🔍 GeoHash 原理 
GeoHash 将二维经纬度映射为一维字符串,前缀相同的点在地理上相近。例如: 
- 北京天安门:`wx4g0b8` 
- 附近地点:`wx4g0b9`(前缀相同) 

## 🚀 Redis 实现步骤 

### 1️⃣ 添加地理位置 
```python
import redis

r = redis.Redis()
# 添加用户位置(经度、纬度、名称)
r.geoadd("users:location", 116.404, 39.915, "user1") 
r.geoadd("users:location", 116.405, 39.916, "user2")
```

### 2️⃣ 查询附近的人 
```python
# 查询 user1 附近 1km 内的用户
results = r.georadiusbymember(
  "users:location",
  "user1",
  1, # 半径 1km
  unit="km",
  withdist=True # 返回距离
)
print(results) # [('user2', 0.12), ...]
```

### 3️⃣ 获取距离 
```python
distance = r.geodist("users:location", "user1", "user2", unit="km")
print(f"相距 {distance} km") # 相距 0.12 km
```

## 💡 优势 
- ⚡ **高性能**:基于 Redis 内存操作,查询速度极快 
- 📍 **精准排序**:支持按距离筛选和排序 
- 🔧 **简单 API**:几行代码即可实现功能 

## 🎯 应用场景 
- 社交 App 的「附近好友」 
- 外卖/快递的「附近骑手」 
- 共享单车的「最近车辆」 

用 Redis GeoHash,轻松让你的应用「定位」更精准!📍 

(代码示例基于 Python + Redis,其他语言类似)
5G.okatady121.asia/PoSt/1125_851269.HtM
5G.okatady120.asia/PoSt/1125_929935.HtM
5G.okatady119.asia/PoSt/1125_982301.HtM
5G.okatady118.asia/PoSt/1125_936898.HtM
5G.okatady117.asia/PoSt/1125_023958.HtM
5G.okatady116.asia/PoSt/1125_429963.HtM
5G.okatady115.asia/PoSt/1125_401158.HtM
5G.okatady114.asia/PoSt/1125_003044.HtM
5G.okatady113.asia/PoSt/1125_300317.HtM
5G.okatady112.asia/PoSt/1125_070624.HtM
5G.okatady121.asia/PoSt/1125_219725.HtM
5G.okatady120.asia/PoSt/1125_545174.HtM
5G.okatady119.asia/PoSt/1125_681895.HtM
5G.okatady118.asia/PoSt/1125_619138.HtM
5G.okatady117.asia/PoSt/1125_769763.HtM
5G.okatady116.asia/PoSt/1125_360440.HtM
5G.okatady115.asia/PoSt/1125_511666.HtM
5G.okatady114.asia/PoSt/1125_537172.HtM
5G.okatady113.asia/PoSt/1125_928437.HtM
5G.okatady112.asia/PoSt/1125_602562.HtM
5G.okatady121.asia/PoSt/1125_992360.HtM
5G.okatady120.asia/PoSt/1125_356875.HtM
5G.okatady119.asia/PoSt/1125_639154.HtM
5G.okatady118.asia/PoSt/1125_986818.HtM
5G.okatady117.asia/PoSt/1125_392926.HtM
5G.okatady116.asia/PoSt/1125_704769.HtM
5G.okatady115.asia/PoSt/1125_849540.HtM
5G.okatady114.asia/PoSt/1125_841850.HtM
5G.okatady113.asia/PoSt/1125_359741.HtM
5G.okatady112.asia/PoSt/1125_878956.HtM
5G.okatady121.asia/PoSt/1125_843886.HtM
5G.okatady120.asia/PoSt/1125_451609.HtM
5G.okatady119.asia/PoSt/1125_844138.HtM
5G.okatady118.asia/PoSt/1125_301611.HtM
5G.okatady117.asia/PoSt/1125_729365.HtM
5G.okatady116.asia/PoSt/1125_964386.HtM
5G.okatady115.asia/PoSt/1125_400435.HtM
5G.okatady114.asia/PoSt/1125_672885.HtM
5G.okatady113.asia/PoSt/1125_920096.HtM
5G.okatady112.asia/PoSt/1125_044945.HtM
5G.okatady121.asia/PoSt/1125_147518.HtM
5G.okatady120.asia/PoSt/1125_738037.HtM
5G.okatady119.asia/PoSt/1125_403655.HtM
5G.okatady118.asia/PoSt/1125_968746.HtM
5G.okatady117.asia/PoSt/1125_405983.HtM
5G.okatady116.asia/PoSt/1125_163129.HtM
5G.okatady115.asia/PoSt/1125_762097.HtM
5G.okatady114.asia/PoSt/1125_293128.HtM
5G.okatady113.asia/PoSt/1125_390020.HtM
5G.okatady112.asia/PoSt/1125_243010.HtM
5G.okatady121.asia/PoSt/1125_242367.HtM
5G.okatady120.asia/PoSt/1125_577846.HtM
5G.okatady119.asia/PoSt/1125_529217.HtM
5G.okatady118.asia/PoSt/1125_247926.HtM
5G.okatady117.asia/PoSt/1125_184345.HtM
5G.okatady116.asia/PoSt/1125_434666.HtM
5G.okatady115.asia/PoSt/1125_409226.HtM
5G.okatady114.asia/PoSt/1125_530551.HtM
5G.okatady113.asia/PoSt/1125_362099.HtM
5G.okatady112.asia/PoSt/1125_768364.HtM
5G.okatady121.asia/PoSt/1125_295736.HtM
5G.okatady120.asia/PoSt/1125_880691.HtM
5G.okatady119.asia/PoSt/1125_331341.HtM
5G.okatady118.asia/PoSt/1125_906823.HtM
5G.okatady117.asia/PoSt/1125_871715.HtM
5G.okatady116.asia/PoSt/1125_422180.HtM
5G.okatady115.asia/PoSt/1125_607453.HtM
5G.okatady114.asia/PoSt/1125_424704.HtM
5G.okatady113.asia/PoSt/1125_333228.HtM
5G.okatady112.asia/PoSt/1125_450491.HtM
5G.okatady121.asia/PoSt/1125_279049.HtM
5G.okatady120.asia/PoSt/1125_939045.HtM
5G.okatady119.asia/PoSt/1125_174331.HtM
5G.okatady118.asia/PoSt/1125_392608.HtM
5G.okatady117.asia/PoSt/1125_226390.HtM
5G.okatady116.asia/PoSt/1125_652964.HtM
5G.okatady115.asia/PoSt/1125_718978.HtM
5G.okatady114.asia/PoSt/1125_477141.HtM
5G.okatady113.asia/PoSt/1125_999480.HtM
5G.okatady112.asia/PoSt/1125_965644.HtM

全部评论

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
肖先生~:那年秋招闯进一位少年,人们都清楚:成功对他来说只是时间问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务