Обратное чтение нескольких потоков Redis (воображаемая команда XREVREAD)

С потоками Redis я могу читать несколько потоков в хронологическом прямом направлении. Каждый поток читается от момента времени до самого нового момента в этом потоке. Я могу получить самый старый элемент в нескольких потоках

XREAD COUNT 1 STREAMS streamA streamB streamC 0-0 0-0 0-0

и оттуда (отмечая возвращенные идентификаторы) двигаться вперед, потребляя все элементы в выбранных потоках. Ограничение потребления только 1 элементом на поток.

Как я могу легко использовать несколько потоков в обратном порядке. Начать с новейших элементов в подсказке в потоке и вернуться назад во времени, ограничивая потребление только 1 элементом из каждого потока?

1 ответ

Вы не можете этого сделать, поскольку Redis не предоставляет эту команду XREVREAD начиная с версии 6.0.

Ближайшим является XREVRANGE, за исключением того, что он принимает только один поток за раз. Если вы действительно этого хотите, вам, возможно, придется написать lua-скрипт, чтобы вы могли предоставить несколько потоков, чтобы скрипт зацикливал потоки и вызывал команду XREVRANGE, а затем сразу приводил результаты.

Другие вопросы по тегам