Встречается на собеседованиях • сегодня

Почему не стоит использовать Redis для коммуникации между микросервисами

Redis не предназначен для межсервисной коммуникации из-за нескольких ключевых ограничений:

  1. Нет гарантии доставки – если подписчик отключится во время обработки сообщения, оно будет потеряно
  2. Отсутствие механизма подтверждения – нет ACK/NACK как в RabbitMQ/Kafka
  3. Очереди в памяти – при падении Redis данные теряются, даже с persistence есть риск потери

Пример проблемного сценария:

python
# Сервис A публикует в Redis
r = redis.Redis()
r.publish('orders', 'new_order_123')

# Сервис B может пропустить сообщение при перезагрузке
pubsub = r.pubsub()
pubsub.subscribe('orders')
for message in pubsub.listen():
    process_order(message)  # Если упадет здесь - сообщение потеряно

Для межсервисного взаимодействия лучше использовать специализированные брокеры: RabbitMQ (для гарантированной доставки), Kafka (для потоковой обработки) или NATS (для high-throughput сценариев). Redis же оптимален для кеширования и быстрых in-memory операций.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы