redigo is a free, open source databases project written in Go and released under Apache-2.0. It has 9,853 GitHub stars, 1,232 forks and 25 open issues, and was last pushed 11 months ago. On this registry it ranks #81 of 143 tracked projects in Databases, with 5 head-to-head comparisons available.

What is redigo?

Redigo is an Apache-2.0-licensed Go client library for the Redis and Valkey databases, built for Go developers who need a small, dependency-free way to connect their own applications to a Redis-compatible server.

What it is

Redigo is a client library written in Go that speaks to Redis and Valkey, the two in-memory data stores that implement the same protocol. It lives in the Go module ecosystem under the import path github.com/gomodule/redigo/redis and is distributed through the standard Go toolchain rather than through a separate package manager or binary. The library presents Redis commands through a Print-like API, meaning call sites look close to the commands themselves, and it covers the full Redis command set rather than a curated subset. The project is licensed under the Apache License, Version 2.0, and the repository carries 9,853 stars and 1,232 forks with 25 open issues at the time of writing.

The concrete problem it solves is the plumbing between a Go program and a Redis server. Without a client library, a Go service would have to implement the Redis wire protocol, manage the lifecycle of TCP connections, parse every reply shape, and decide when to reuse a connection versus open a new one. Redigo replaces that hand-rolled layer with a tested implementation of connection pooling, reply parsing, and the command surface. Its notable constraint is also its selling point: the Go distribution is the only dependency, so adding Redigo does not pull a transitive dependency tree into a project.

Key capabilities

  • A Print-like API with support for all Redis commands, so command calls map closely to the Redis protocol itself.
  • Pipelining, including pipelined transactions, which lets a client batch commands and read the replies together.
  • Publish/Subscribe support for Redis channels.
  • Connection pooling through the redis.Pool type, which manages reusable connections rather than one connection per call.
  • A Script helper type that uses optimistic EVALSHA invocation, falling back when the script is not yet cached on the server.
  • Reply helper functions for converting command replies into Go values.
  • Related tooling built on top, including rafaeljusto/redigomock for mocking, mna/redisc for Redis Cluster, and FZambia/sentinel for Redis Sentinel support.

Who uses it and how

  • Go services that need a caching, session, or queue layer and want to reach Redis without adding third-party dependencies to the build.
  • Applications that publish and subscribe to Redis channels, using the built-in Publish/Subscribe support rather than a separate messaging client.
  • Throughput-sensitive services that use pipelining and redis.Pool to reduce round trips and connection churn.
  • Teams that need cluster or failover behaviour and layer mna/redisc or FZambia/sentinel on top of Redigo, since Redigo itself is the base client.
  • Teams adding tracing and metrics through Alibaba/opentelemetry-go-auto-instrumentation, which instruments Redigo without source changes, and teams writing tests against rafaeljusto/redigomock.

Getting started

Install with the standard Go command: go get github.com/gomodule/redigo/redis. The Go distribution is the only dependency, so no additional package manager, container, or compose file is required.

How it compares

No list of paid products this project replaces is provided, so the honest comparison is with the tools named alongside it. Redigo sits at the base layer as a plain client for a single Redis or Valkey endpoint, while mna/redisc and chasex/redis-go-cluster are cluster clients built on top of it and FZambia/sentinel adds Sentinel discovery. The surrounding projects are complements rather than alternatives: rafaeljusto/redigomock exists specifically to mock Redigo in tests, which is itself evidence that Redigo is the thing being wrapped.

When to use it — and when not to

A self-hoster still has to run and operate the Redis or Valkey server, and because Redigo is a library rather than a service, there is no hosted option, dashboard, or managed deployment to fall back on. Anyone who needs cluster topology handling or Sentinel failover out of the box should start from mna/redisc or FZambia/sentinel instead of expecting Redigo to provide it. The README is also sparse: it lists features and links to the API reference, FAQ, and examples, but gives no migration notes, release history, or operational guidance, so users should expect to read the package documentation rather than the repository front page.

project readme (upstream, from github) — read inline

Redigo

GoDoc

Redigo is a Go client for the Redis / Valkey database.

Features

Documentation

Installation

Install Redigo using the "go get" command:

go get github.com/gomodule/redigo/redis

The Go distribution is Redigo's only dependency.

Related Projects

Contributing

See CONTRIBUTING.md.

License

Redigo is available under the Apache License, Version 2.0.

Frequently asked questions

Is redigo free to use?

redigo is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does redigo do?

Go client for Redis

What is redigo written in?

redigo is primarily written in Go. Its source is publicly available at https://github.com/gomodule/redigo, and it has 9,853 GitHub stars.