What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Redis GEO lookups can be fast, but there is no universal microsecond response time: the result depends on the search, dataset, client, and connection. Pipelining can reduce the round-trip overhead of sending many independent commands; it does not make an individual GEOSEARCH inherently constant-time. The term “wpipe” is not identified in Redis’s official documentation, so no specific client, feature, or benchmark result can be attributed to it.
How Redis GEO lookups work
Redis GEO stores locations in a sorted set. Use GEOADD to add coordinate/member pairs and GEOSEARCH to find members within a circular radius or rectangular area. GEOSEARCH has been available since Redis Open Source 6.2.0. See the GEOADD and GEOSEARCH command references.
Add locations with longitude first
The argument order is longitude, latitude, then member. For example:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11GEOADD locations -73.9857 40.7484 empire-state-building
Redis encodes coordinates using a 52-bit integer formed by interleaving longitude and latitude bits. Valid longitude is −180 to 180 degrees; valid latitude is −85.05112878 to 85.05112878 degrees. Coordinates outside those supported bounds are rejected, so locations very near the poles may not be indexable. The documented complexity is O(log(N)) per item added.
#1 Best Overall
Search a radius or box
GEOSEARCH accepts a stored member or a coordinate as its center and searches by radius or box. For example, a 2-kilometer radius around a member is expressed as:
GEOSEARCH locations FROMMEMBER empire-state-building BYRADIUS 2 km
A box search uses BYBOX width height unit instead. Optional arguments let you request ascending or descending distance order, limit results with COUNT (optionally with ANY), and return coordinates, distances, or hashes using WITHCOORD, WITHDIST, or WITHHASH.
Rank #2
What GEOSEARCH complexity means for response time
Redis documents GEOSEARCH complexity as O(N+log(M)). Here, N is the number of elements in the grid-aligned bounding box around the requested shape, and M is the number of indexed members inside the shape. This is not a fixed per-query time or a guarantee of microsecond latency: the search area, point density, sorting, and returned results all affect work.
A particularly important detail is that a small COUNT does not necessarily make a large-area query cheap. Without ANY, Redis gathers and sorts matches before returning the requested number, so it may still do substantial work even when the result limit is low. Choose a sensible geographic area and return only the fields and results the application needs.
Rank #3
What pipelining changes
Redis uses a request/response protocol. With sequential commands, a client sends one command and waits for the reply before sending the next. A pipeline sends multiple commands before reading their replies, amortizing round trips across the batch and reducing socket system-call overhead. Redis says: “Pipelining is not just a way to reduce the latency cost associated with the round trip time, it actually greatly improves the number of operations you can perform per second in a given Redis server.” See the Redis pipelining documentation.
Use pipelines for independent commands
Pipelining helps when commands can be issued without first consuming the previous reply. If command two depends on the value returned by command one, a pipeline cannot remove that dependency because the client must read and process the first result to decide what to send next. For read-compute-write logic of that kind, Redis identifies server-side scripting as an option.
Rank #4
Bound batch size
Do not send an unbounded pipeline: Redis queues replies, which consumes memory. Send a reasonable batch, read its replies, then continue. The right batch size depends on the workload and should be measured rather than assumed.
Why “microseconds” is not a Redis GEO promise
Command execution is only one part of end-to-end latency. The client runtime, operating system, network or local inter-process communication, server work, and workload all contribute. Redis’s latency guidance says most commands are processed in the sub-microsecond range, but gives illustrative typical connection figures of about 200 microseconds over a 1 Gbit/s network and as low as 30 microseconds over a Unix domain socket. These are environment-dependent examples, not guarantees or measurements of a particular GEO query.
Best Value
A Redis-published comparison also illustrates why figures need their setup attached: Redis reported average GEOSEARCH latency including round-trip time of 93.598 ms on Redis 7.0.5 and 73.046 ms on Redis 7.0.7, about 22% lower, for its specific benchmark workload in 2023. Those millisecond results do not predict another query or a pipelined workload. See Redis’s geographic commands article.
Choose the data model and connection for the job
| Choice | Best fit | Trade-off to account for |
|---|---|---|
| Redis GEO sorted-set commands | Coordinate/member storage and searches within circles or rectangles | Its query model is narrower than a general geospatial document index. |
| Redis Search geospatial indexing | Geo fields on JSON documents, geometric shapes, and spatial relationships | It is a separate feature from the GEO sorted-set data type. |
| Sequential requests | Commands whose arguments depend on earlier replies | Each request-response round trip is paid separately. |
| Pipelined requests | Independent commands that can be sent together | Reply memory grows with queued responses; use bounded batches. |
| Network connection | Clients and Redis deployed on separate hosts or across a network | Network conditions add to end-to-end latency. |
| Unix domain socket | Applications that can connect locally to Redis | Only applies when client and server placement and operational requirements allow local IPC. |
Redis Search offers broader geospatial capabilities than GEO, while sequential versus pipelined requests is a choice about communication pattern rather than the GEO data model. For local versus network deployment, compare measured end-to-end results in the actual topology; the illustrative latency figures above are not interchangeable guarantees.
How to benchmark your GEO workload credibly
A synchronous loop that sends a command and waits for every reply can primarily measure network or IPC and client-library overhead, not just Redis command processing. Redis’s benchmark guidance recommends an application-representative workload. Compare equivalent setups and disclose enough detail for others to interpret the result.
Free tools Windows power users keep installed
One-click scans. No signup required.
- Redis version, client library and runtime, hardware, and deployment topology.
- Dataset size and geographic density; search center, shape, and area.
COUNT,ANY, ordering, requested fields, and result sizes.- Pipeline batch size, concurrency, and command mix.
- Warm or cold state, plus p50, p95, and p99 latency.
Report what the benchmark measures: for example, client-observed round-trip latency for a specified pipeline and query mix, rather than an unqualified “Redis GEO latency.” Keep pipeline depth and concurrency realistic for the application, and compare like with like.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

