Удаление диапазона записей из Redis Stream
Я хочу удалить записи Redis Stream старше определенного идентификатора записи. Но команда XDEL явно принимает каждый идентификатор как входной. Есть ли способ указать диапазон идентификаторов, который поможет при большом количестве записей в потоке? Также обрезка диапазона записей также поможет мне вспомнить неиспользованную память.
1 ответ
В настоящее время нет возможности.
Однако XTRIM предназначен для приема различных стратегий обрезки, даже если в настоящее время реализован только MAXLEN. Учитывая, что это явная команда, возможно, что в будущем она позволит указать обрезку по времени, потому что пользователь, вызывающий эту команду автономно, должен знать, что он или она делает.
Одна полезная стратегия выселения, которую должен иметь XTRIM, - это, вероятно, возможность удаления по диапазону идентификаторов. В настоящее время это невозможно, но, вероятно, будет реализовано в будущем, чтобы упростить совместное использование XRANGE и XTRIM для перемещения данных из Redis в другие системы хранения, если это необходимо.
Вы можете использовать XTRIM, чтобы претендовать на пространство, в XTRIM вы можете указать желаемую длину.
XTRIM mystream MAXLEN ~ 1000
В этой 1000 - размер оставшегося потока, он может быть больше или меньше, это приблизительное число.