Я хотел бы реализовать параллельную очередь приоритетов в Redis, с несколькими процессами на разных машинах, добавляя элементы (с оценками) и несколькими другими процессами, которые выкладывают эти элементы, сначала с минимальным счетом.Параллельная очередь приоритетов в redis?
Простая очередь может быть реализована с помощью LPUSH и RPOP.
Используя ZSET, я могу добавить элементы, используя ZADD, и поместить их с ZRANGE и ZREM, если есть только один считыватель.
Для нескольких читателей, мне кажется, мне нужно что-то вроде ZPOP, которое сочетает ZRANGE и ZREM в одной атомной операции. В противном случае два считывателя могут получить один и тот же элемент от ZRANGE, прежде чем он сможет ZREM. Повторная попытка, если ZREM вернет 0, будет работать, но нежелательно.
Есть ли способ, которым я могу это сделать, используя текущие команды Redis? Есть ли причина, по которой это еще не было добавлено в Redis? Похоже, что это будет довольно простая команда для реализации.
Спасибо! Кажется, это решение ... –