Что такое Pub/Sub в Redis?
Подробный ответ
Как работает Pub/Sub
Pub/Sub расшифровывается как publish/subscribe, то есть «публикация/подписка». Отправитель не знает получателей: он публикует сообщение в канал, а Redis передаёт его всем активным подписчикам этого канала.
SUBSCRIBE notifications
PUBLISH notifications "New order created"Пример применения
API service
|
PUBLISH user:42:notifications
|
Redis channel
|
+-------------------------+
| |
WebSocket gateway Notification service
| |
Browser Push notificationПодходящие сценарии
передача уведомлений активным пользователям;
обновление WebSocket-подключений;
внутренние краткоживущие сигналы между сервисами;
синхронизация кэша между экземплярами приложения.
Главное ограничение
Redis Pub/Sub не хранит сообщения. Если подписчик был отключён, временно недоступен или подключился позже, он не получит пропущенные публикации. Поэтому Pub/Sub не подходит для критичных задач, где нужно гарантированно обработать каждое сообщение.
Pub/Sub и Redis Streams
Redis Streams сохраняет сообщения, имеет идентификаторы записей, группы получателей и подтверждение обработки. Его выбирают, когда нужно восстановить обработку после сбоя или читать историю. Pub/Sub выбирают, когда важно мгновенно передать краткоживущий сигнал только активным подписчикам.
Как ответить на собеседовании
Redis Pub/Sub передаёт сообщение всем активным подписчикам канала. Он подходит для мгновенных уведомлений и WebSocket-сценариев, но не гарантирует доставку и не хранит историю: отключённый подписчик пропустит сообщение. Для надёжной очереди с подтверждениями использую Redis Streams, RabbitMQ или Kafka в зависимости от задачи.
Оцени свой прогресс