Go-Redis официальный клиент Redis для Go-разработчиков

28 Jun, 2026
22,169
🔱 2,559
👥 252

Redis Go client

Представьте, что вы разрабатываете высоконагруженное приложение на Go и вам нужно быстрое хранилище для кеширования или работы с временными данными. Знакомый сценарий? Именно здесь на помощь приходит Redis — популярная in-memory база данных, а go-redis — это официальный клиент, который делает работу с Redis из Go простой и эффективной.

Что такое go-redis?

go-redis — это официальный клиент Redis для языка программирования Go, разрабатываемый самой командой Redis. С более чем 20 тысячами звезд на GitHub, он стал де-факто стандартом для работы с Redis в Go-приложениях.

Клиент поддерживает:

  • Все современные версии Redis (7.2, 7.4, 8.0, 8.2)
  • Последние две версии Go (1.23 и 1.24)
  • Все команды Redis (кроме QUIT и SYNC)

Ключевые возможности

1. Простота интеграции

Установка занимает всего пару команд:

Реклама
go mod init github.com/my/repo
go get github.com/redis/go-redis/v9

А базовый пример использования выглядит интуитивно понятно:

rdb := redis.NewClient(&redis.Options{
    Addr:     "localhost:6379",
    Password: "",
    DB:       0,
})

err := rdb.Set(ctx, "key", "value", 0).Err()
val, err := rdb.Get(ctx, "key").Result()

2. Поддержка всех функций Redis

go-redis поддерживает практически все возможности Redis:

  • Публикация/подписка (Pub/Sub)
  • Пайплайны и транзакции
  • Работа с Lua-скриптами
  • Поддержка Redis Sentinel и Cluster
  • Работа с Redis Ring
  • Мониторинг производительности

3. Гибкая аутентификация

Клиент предлагает несколько способов аутентификации с четким порядком приоритета:

  1. Streaming Credentials Provider (экспериментальный) — для динамического обновления учетных данных
  2. Context-based Provider — учетные данные на основе контекста
  3. Regular Provider — статические учетные данные
  4. Username/Password — классический вариант

Пример с динамическими учетными данными:

rdb := redis.NewClient(&redis.Options{
    Addr: "localhost:6379",
    StreamingCredentialsProvider: &MyCredentialsProvider{},
})

4. Поддержка OpenTelemetry

Интеграция с OpenTelemetry позволяет легко мониторить производительность Redis-запросов:

import "github.com/redis/go-redis/extra/redisotel/v9"

rdb := redis.NewClient(&redis.Options{...})
errors.Join(redisotel.InstrumentTracing(rdb), redisotel.InstrumentMetrics(rdb))

Когда стоит использовать go-redis?

Этот клиент идеально подойдет, если:

  • Вы разрабатываете на Go и вам нужно in-memory хранилище
  • Ваше приложение требует высокой производительности
  • Нужна поддержка кластеров Redis
  • Вы хотите использовать современные функции Redis 7 и 8
  • Вам важна интеграция с экосистемой мониторинга

Альтернативы и экосистема

Помимо основного клиента, команда поддерживает несколько полезных дополнений:

go-redis — это зрелый, хорошо поддерживаемый клиент, который делает работу с Redis из Go простой и эффективной. Благодаря официальной поддержке со стороны Redis, он всегда актуален и включает все последние функции. Если вы работаете с Redis в Go-проектах — этот клиент должен быть в вашем инструментарии.

Стоит попробовать, если:

  • Вы ищете надежный Redis-клиент для Go
  • Нужна поддержка современных версий Redis
  • Важно удобство использования и хорошая документация

Полная документация доступна на официальном сайте.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.