// the find
redis/rueidis
A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, RDMA, etc.
rueidis is a Go Redis client built around two ideas: automatic pipelining of concurrent commands and server-assisted client-side caching via RESP3. It's now officially maintained under the redis org, which happened after the original author (rueian) built it independently. For Go services that hammer Redis at high concurrency, this is worth looking at seriously.
Auto-pipelining is the real win here — concurrent goroutines calling client.Do() get their commands batched transparently, no explicit pipeline management needed. The benchmark numbers (~14x over go-redis on M1 at high parallelism) are credible given the design, not marketing fluff. Client-side caching using RESP3 server-push invalidation is properly implemented, not a local TTL guess — the server tells your client when to drop a key. The generated command builder catches type errors at compile time and guides you through valid command sequences, which is actually useful for the less-used Redis commands you'd otherwise get wrong.
The command recycling footgun (DO NOT reuse a built command) is an easy trap that will cause subtle, hard-to-reproduce bugs under load — it's documented but the API doesn't prevent misuse at all. Client-side caching only helps if you use DoCache() explicitly; there's no transparent caching, so you have to audit every call site to opt in. The go-redis compatibility layer (rueidiscompat) lags behind the native API and adds a translation overhead that somewhat undercuts the performance story if you're migrating an existing codebase. RDMA support is Linux-only C code, which complicates cross-platform builds and is realistically useful to almost nobody outside hyperscaler environments.