Спасибо за попытку RedisTimeSeries.
Давайте разберемся, что происходит на самом деле, а затем я объясню почему. При создании правила необходимо указать 2 параметра: тип агрегации и размер сегмента. (здесь важно отметить, что размер сегмента указывается в миллисекундах, а не в секундах)
Если у вас есть правило, каждая добавляемая выборка используется для вычисления текущего агрегированного значения после завершения контекста корзины мы передаем sh значение ключу с пониженной дискретизацией. Как мы узнаем, что контекст корзины закончился? если у вас есть сегмент в 5 секунд, мы будем держать контекст открытым до тех пор, пока не получим образец, выходящий за пределы диапазона 5 секунд.
Так почему вы видите только предыдущий сегмент? Для этого есть 2 причины:
- Это оптимизация, позволяющая избежать открытия ключа с субдискретизацией и записи выборки (переопределение выборки - это операция с интенсивным использованием процессора, поскольку мы сжали структуру данных для хранения данных в память)
- API - мы предпочли не возвращать частичную корзину, чтобы не отображать данные «в полете».
Надеюсь, это ответит на ваши вопросы.