Временные интервалы на основе сегментов в отсортированном наборе - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ генерировать интервалы на основе временного интервала с использованием отсортированного набора redis.Я хочу создать различные отсортированные наборы за определенный промежуток времени (скажем, 15 минут)

t1, t2 - это баллы

Ключ SortedSet

корзина # V1 (t1,1), (t2,2) ..... (зафиксированное ведро)

ведро # V1 + 15 (t3,1), (t4,2) ..... (совершенное ведро)

сегмент # V1 + 30 (t5,1), (t6,2) ..... (текущий рабочий интервал)

, т. Е. С интервалом в 15 минут он должен автоматически создать новый ключ и начать прием данныхв новом отсортированном наборе.V1 + 15 должен начаться через 15 минут ...

Вторая проблема заключается в том, как запросить фиксированные сегменты?(не работает ведра, где данные по-прежнему поступают).

Конечная цель состоит в том, чтобы сначала запросить фиксированные сегменты, а затем запросить данные в каждом сегменте с использованием запросов временного диапазона (на основе оценки, т.е. ZRANGEBYSCORE)

1 Ответ

0 голосов
/ 05 декабря 2018

Ваш ключ будет что-то вроде DateTime.Now.SecondsSinceEpoch / TimeSpan.FromMinutes (15) Отформатированный как строка фиксированной длины.Вот скрипт powershell, показывающий, как получить значение ключа интервала.Вы можете использовать аналогичную процедуру для хранения данных или запроса любого прошлого (или будущего) интервала.Здесь интервал составляет 3 секунды, а значение Epoch - 1 января 1970 года, но можно использовать все, что вы захотите.

1..7 | % { $interval = [int] (((get-date) - (epoch)).TotalSeconds / 3) ; $interval ; start-sleep -Seconds 1 }
514663592
514663593
514663593
514663593
514663594
514663594
514663594
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...