finds.dev← search

// the find

redis/go-redis

★ 22,135 · Go · BSD-2-Clause · updated Jun 2026

Redis Go client

The official Redis client for Go, maintained by Redis itself. It covers the full Redis command surface — standalone, Sentinel, Cluster — with connection pooling, pipelining, Pub/Sub, Lua scripting, and now the experimental Redis 8.8 array data type. If you're writing Go and using Redis, this is the one to use.

First-party maintenance means new Redis features (RESP3, array commands, Entra ID auth) land here before anywhere else. The streaming credentials provider is genuinely useful for managed-identity setups on Azure/AWS where tokens rotate. The hook system is well-designed — you can intercept dial, process, and pipeline stages independently, and typed error helpers like `redis.IsClusterDownError` make error handling less fragile than string matching. OpenTelemetry integration ships as a separate module so you don't pull in otel deps unless you want them.

The `UnstableResp3` field being kept as a no-op for backwards compatibility is a symptom of a broader issue: the API surface has accumulated cruft across v8→v9 and the upcoming v10 deprecation removals will break code that hasn't been updated. The `maintnotifications` subsystem is a large, complex addition (circuit breaker, e2e tests, proxy fault injector) that most users will never touch but adds real cognitive overhead when reading the codebase. Documentation is split between redis.uptrace.dev (third-party, may lag) and redis.io (official) with no clear canonical source. The experimental array commands API ships in a release candidate state with an explicit warning it may change — fine to ship, but the boundary between stable and experimental isn't always obvious from the outside.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →