Working with Geospatial Indexes

1. Adding Geospatial Data

CommandDescription
GEOADD key [NX|XX] [CH] lon lat member [...]Stored as sorted set with geohash scores
GEOADD shops -122.4194 37.7749 "sf" -73.9857 40.7484 "nyc"

2. Getting Member Position

CommandReturns
GEOPOS key m [m ...][lon, lat] arrays or nil

3. Calculating Distance

CommandUnits
GEODIST key m1 m2 [m|km|ft|mi]Default m

4. Getting Geohash

CommandReturns
GEOHASH key m [m ...]11-char geohash strings (standard)

5. Searching by Radius

CommandDescription
GEOSEARCH key FROMMEMBER m | FROMLONLAT lon lat BYRADIUS r unit [WITHCOORD] [WITHDIST] [COUNT n [ANY]] [ASC|DESC]Unified search 6.2+
GEORADIUS / GEORADIUSBYMEMBERDEPRECATED use GEOSEARCH

6. Searching by Area

ShapeSyntax
BoxBYBOX width height unit
CircleBYRADIUS r unit

Example: Nearest 10 shops within 5km

GEOSEARCH shops FROMLONLAT -122.4 37.77 BYRADIUS 5 km ASC COUNT 10 WITHCOORD WITHDIST

7. Storing Search Results

CommandDescription
GEOSEARCHSTORE dst src ... [STOREDIST]Persist results as sorted set

8. Removing Geospatial Members

CommandNotes
ZREM key memberGeo keys are sorted sets; reuse ZSET commands

9. Understanding Geospatial Precision

PropertyValue
Coordinate rangeLon ±180, Lat ±85.05112878
Precision~0.5m worst case (52-bit geohash)

10. Using Distance Units

UnitSuffix
Metersm
Kilometerskm
Milesmi
Feetft