Redis Stream Управление временными рамками - PullRequest
0 голосов
/ 04 июля 2018

Я пишу события в Redis Stream. Но я бы хотел сохранить только последние 48 часов событий. Согласно документации Redis, я увидел, что могу управлять размером списка только с помощью MAXLEN, который влияет на количество записей, а не на временные рамки. Можно ли каким-либо образом использовать функцию XADD, кроме как ограничить вставку записей, которые старее, чем последние 48 часов? Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Это пока не ясно. Мне не нравится ванильный способ ограничения времени потока, то есть «обрезать по <seconds>», потому что это означает, что, если в элементах XADD-процесса есть задержка, позже следующий XADD придется выселить. вещи потенциально на секунды, вызывая всплески задержки. Более того, это не имеет большого смысла семантически. Ваш реальный «ограниченный ресурс» - это память, поэтому на самом деле не так важно, сколько предметов вы хотите сохранить в прошлом VS, сколько предметов вы можете хранить, поэтому ограничение количества предметов имеет больше смысла. Тем не менее, в некоторых приложениях, где есть несколько потоков со скоростями вставки, которые сильно различаются у разных производителей, имеет смысл ограничить время, чтобы не тратить память у некоторых производителей, которые выдают очень мало записей за единицу времени. Возможно, в какой-то момент я добавлю некоторое ограничение времени «наилучшего усилия», которое не выполняет больше работы, чем заданное количество, но которое в конечном итоге сможет обрезать поток, учитывая достаточно вызовов XADD.

0 голосов
/ 08 августа 2019

Возможное решение в nodejs, основанное на обрезке до указанного ключа (но не по времени).

https://gist.github.com/jakelowen/22cb8a233ac0cdbb8e77808e17e0e1fc

Подтверждение концепции. Не проверено в бою.

0 голосов
/ 04 июля 2018

AFAIK еще нет. Были дискуссии о добавлении ограничения на временные метки (в XADD, а также возможно в XTRIM), но не похоже, что эта функция была реализована в последних версиях-кандидатах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...