Этот вопрос проверяет, понимаете ли вы, как Redis используется как очередь и какие команды для этого применяются.
В Redis очередь обычно реализуется с помощью списка. Элемент добавляют командами LPUSH или RPUSH. Одна сторона списка считается “входом”, другая — “выходом”. Для безопасного чтения часто используют блокирующие команды. Такой подход прост и очень быстрый.
Redis не имеет отдельного типа “очередь”, но предоставляет структуры данных, из которых ее легко построить.
Определение: Очередь в Redis — это шаблон использования списка (list), где элементы добавляются с одной стороны и извлекаются с другой.
Перед перечислением важно зафиксировать принцип FIFO (первый вошел — первый вышел).
Для добавления используются команды:
LPUSH — добавляет элемент в начало списка
RPUSH — добавляет элемент в конец списка
Пример добавления задачи:
import redis
r = redis.Redis()
r.rpush("tasks", "task_1")
r.rpush("tasks", "task_2")
Для получения элемента обычно используют:
LPOP — извлечь с начала
RPOP — извлечь с конца
task = r.lpop("tasks")
Чтобы не опрашивать Redis в цикле, применяют блокирующие команды.
BLPOP
BRPOP
Они ждут появления элемента:
task = r.blpop("tasks", timeout=5)
Фоновые задачи
Очереди обработки событий
Простые job-системы
Очередь в Redis реализуется через списки с помощью LPUSH/RPUSH и LPOP/RPOP, а для надежной обработки часто используют блокирующие команды.