Встречается на собеседованиях • сегодня
Как гарантировать доставку в Redis Pub/Sub
В Redis Pub/Sub нет встроенной гарантии доставки сообщений — это fire-and-forget механизм. Если подписчик оффлайн, сообщения теряются.
Альтернативы:
- Streams (лучший вариант) — сохраняют сообщения, поддерживают подтверждение (ack) и группы потребителей.
python
# Producer
r = redis.Redis()
r.xadd('mystream', {'data': 'value'})
Consumer (группа)
r.xgroup_create('mystream', 'mygroup', id='0')
messages = r.xreadgroup('mygroup', 'consumer1', {'mystream': '>'}, count=1)
r.xack('mystream', 'mygroup', message_id) # Подтверждение
text
2. **Репликация + RDB/AOF** — для durability, но не гарантирует доставку подписчику.
3. **Внешние системы** (Kafka, RabbitMQ) — если нужны строгие гарантии.
**Вывод:** Используйте Redis Streams для persistence и подтверждений.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы