Нет опции maxlen для ограничения размера потока в весенних данных. - PullRequest
0 голосов
/ 14 января 2020

Я пробую Redis данных весны с использованием реактивного шаблона Redis. Однако до сих пор мне не удалось найти Xargs для ограничения размера потока.

Базовая реализация салата имеет эту опцию в собственной реализации:

commands
    .xadd(streamKey, XAddArgs.Builder.maxlen(200L), eventKey,
        record);

Однако это опция недоступна в RedisTemplate AFAIK. Опция maxlen неизбежна, так как поток может расти в геометрической прогрессии.

Если кто-то столкнулся с этим, можете ли вы указать мне правильное место?

Спасибо всем.

1 Ответ

2 голосов
/ 15 января 2020

Нет поддержки XADD с MAXLEN в интерфейсе [StreamOperations][1] RedisTemplate.

Вы можете конвейер add(...) с trim(K key, long count) (XTRIM), чтобы получить аналогичный эффект. Эти две команды будут отправлены одновременно, поэтому у вас есть только одно время приема-передачи.

XTRIM - дорогостоящая операция по сравнению с XADD. Попробуйте обрезать время от времени в отдельной логике c вместо каждого XADD.

К сожалению, MAXLEN ~, похоже, тоже не поддерживается, поэтому у нас остается точное обрезание только на RedisTemplate.

...