finds.dev← search

// the find

gomodule/redigo

★ 9,861 · Go · Apache-2.0 · updated Nov 2025

Go client for Redis

Redigo is a low-level Go client for Redis that exposes a Print-style variadic API — you write commands as strings with args, get back interface{} replies. It's been around since the early days of Go's Redis ecosystem and has the battle scars to show for it.

1. Connection pooling is well-built: Pool has configurable idle timeouts, max active/idle counts, and a TestOnBorrow hook for health-checking connections before use. 2. Script helper handles EVALSHA with automatic fallback to EVAL on NOSCRIPT errors — you don't have to manage that yourself. 3. Zero non-stdlib dependencies; the whole module is just the standard library. 4. Pipelined transactions are first-class — Send/Flush/Receive let you build MULTI/EXEC blocks without fighting the abstraction.

1. The variadic interface{} API means you're casting every reply manually — no generics, no type safety, just Strings(), Int(), etc. helper calls that can panic at runtime if you get the reply type wrong. 2. No built-in Redis Cluster support; Sentinel and Cluster require third-party wrapper packages from the README's related-projects list, which have their own maintenance timelines. 3. The API predates context.Context being idiomatic Go — DoContext exists but feels bolted on, and not all methods accept a context. 4. go-redis/redis (the other major client) has far more active maintenance, typed generics support in v9, and first-party Cluster/Sentinel, making it the default pick for greenfield work; Redigo's main moat is existing codebases.

View on GitHub →

// 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 →