ЛентаСтатьиЗаметкиКурсы
Рецепты
← Все курсы

Redis в Go-проектах: кэш, локи и rate limiting

GoRedisRate LimitingToken BucketLuaDistributed SystemsMiddleware

Практический курс о том, где Redis действительно нужен Go-сервису и как его встроить так, чтобы он не стал точкой отказа.

Цель: научиться использовать Redis как системный компонент Go-проекта — с осознанными политиками отказа, корректным клиентом и продакшен-паттернами: кэш-aside без stampede, распределённые локи без самообмана, и главное — rate limiting в кластере: Token Bucket на Lua, лимитирование входящих запросов (middleware, гибрид local+global) и лимитирование вызовов внешних API (throttle, уважение Retry-After, circuit breaker).

Состав:

  1. Redis в Go-проекте: клиент как системный компонент — карта применений, go-redis: пулы, таймауты, health; fail-open против fail-close.
  2. Кэш и распределённые локи — cache-aside без stampede (singleflight), SET NX PX + токен, честные границы Redlock.
  3. Rate limiting: алгоритмы и Token Bucket на Redis — fixed window и его клык, sliding window, token bucket, GCRA; Lua-скрипт с атомарным refill/consume и защитой от скачка часов.
  4. Входящие запросы: middleware и гибрид — ключи лимитирования (IP/user/API key, XFF и подмена), 429 + Retry-After + X-RateLimit-*, гибрид local+global с graceful degradation.
  5. Исходящий rate limit: вызовы внешних API — throttle вместо reject, резервирование токенов, уважение Retry-After провайдера, circuit breaker, очередь вызовов.
  6. Кластер и эксплуатация — поведение при failover, метрики и алерты лимитера, конкурентный тест точности, чек-лист продакшена.

Формат: теория с Go-кодом (go-redis/v9) в каждом уроке, лабораторные с воспроизведением отказов, квиз с разбором, готовый Lua-скрипт Token Bucket и production-паттерны из боевого Go-шаблона.

Темп: ~6 недель (45–55 часов). Базовый Go и Docker — в активе; курс «Redis как брокер» трека брокеров — не обязателен, но полезен.

Программа курса

1

Модуль 1. Redis в Go-проекте: клиент как системный компонент

→
2

Модуль 2. Кэш и распределённые локи: cache-aside, stampede, SET NX PX

→
3

Модуль 3. Rate limiting: алгоритмы и Token Bucket на Redis через Lua

→
4

Модуль 4. Входящие запросы: middleware, ключи лимитирования и гибрид local+global

→
5

Модуль 5. Исходящий rate limit: лимиты на вызовы внешних API

→
6

Модуль 6. Кластер и эксплуатация: failover, метрики, тест точности, чек-лист

→
Начать обучение