Redis часто используется в веб-приложениях как кэш, хранилище сессий, брокер сообщений или быстрое key-value-хранилище.
Docker позволяет запустить Redis без установки сервера непосредственно в операционную систему.
Быстрый запуск Redis
docker run -d \
--name redis \
redis:alpine
Проверить:
docker ps
Подключиться:
docker exec -it redis redis-cli
Проверить Redis:
PING
Ответ:
PONG
Redis через Compose
Пример:
services:
redis:
image: redis:alpine
restart: unless-stopped
Запуск:
docker compose up -d
Подключение приложения
Допустим, есть:
services:
app:
image: my-app
redis:
image: redis:alpine
Приложение обращается к Redis:
redis:6379
Имя redis — имя Compose-сервиса.
Подробнее — в статье «Docker networks».
Redis как cache
Если Redis используется только как кэш, его потеря может быть допустимой.
Например:
Application
|
Redis
|
Cache
После перезапуска приложение просто наполнит кэш заново.
В таком сценарии требования к persistence могут быть минимальными.
Redis как хранилище данных
Если Redis содержит критичные данные, ситуация меняется.
Необходимо продумать:
- persistence;
- backup;
- восстановление;
- репликацию;
- мониторинг;
- ограничения памяти.
Volume для Redis
Например:
services:
redis:
image: redis:alpine
volumes:
- redis-data:/data
volumes:
redis-data:
Но volume имеет смысл только при включенной и корректно настроенной persistence.
Backup Redis
Стратегия backup зависит от того, какие механизмы сохранения используются и насколько критичны данные.
Нельзя считать:
docker volume
автоматическим backup.
Подробнее — в статье «Docker backup».
Redis и пароль
Если Redis доступен только во внутренней Docker-сети, его не следует без необходимости публиковать наружу.
Не рекомендуется делать:
ports:
- "6379:6379"
на production-сервере без ограничений доступа.
Redis и restart policy
restart: unless-stopped
может использоваться для автоматического восстановления сервиса.
Но restart policy не заменяет persistence или backup.
Подробнее — в статье «Docker restart policy».
Healthcheck
Можно добавить:
services:
redis:
image: redis:alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
Теперь инфраструктура может проверять доступность Redis.
Redis для WordPress
Redis часто используется для объектного кэширования WordPress.
В Docker-среде WordPress может обращаться к Redis по имени:
redis
Такой Redis не обязательно должен быть доступен из интернета.
Подробнее — в статье «Docker для WordPress».
Redis и логи
Посмотреть:
docker logs redis
Или:
docker compose logs -f redis
Подробнее — в статье «Docker logs».
Типичные ошибки
Redis опубликован наружу
Это потенциальная проблема безопасности.
Нет понимания роли Redis
Cache и primary datastore требуют разных подходов.
Нет ограничения памяти
Redis работает в памяти, поэтому важно учитывать доступный RAM.
Нет persistence при необходимости
Если данные важны, необходимо заранее определить способ восстановления.
Итог
Redis отлично подходит для контейнеризации и хорошо сочетается с Docker Compose.
Типовой стек:
Nginx
|
Application
/ \
Redis PostgreSQL
Redis отвечает за быстрый доступ к данным, кэш или очереди, а PostgreSQL — за долговременное хранение основной информации.
Читайте также:


