Обратное чтение нескольких потоков 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, а затем сразу приводил результаты.