TS.MGET
TS.MGET
TS.MGET [LATEST] [WITHLABELS | SELECTED_LABELS label...] FILTER filterExpr...
- Доступно в:
- Стек Redis / TimeSeries 1.0.0
- Временная сложность:
- O(n), где n — количество временных рядов, соответствующих фильтрам
Получение выборки с максимальным временным отметкой для каждого временного ряда, соответствующего заданному фильтру
Обязательные аргументы
FILTER filterExpr...
фильтры временные ряды на основе их меток и значений меток. Каждое выражение фильтра имеет один из следующих синтаксисов:
-
label=value, гдеlabelравноvalue -
label!=value, гдеlabelне равноvalue -
label=, гдеkeyне имеет меткиlabel -
label!=, гдеkeyимеет меткуlabel -
label=(value1,value2,...), гдеkeyс меткойlabelравно одному из значений в списке -
label!=(value1,value2,...)где ключ с меткойlabelне равен ни одному из значений в списке
- Требуется хотя бы один
label=valueфильтр. - Фильтры являются конъюнктивными. Например, фильтр
type=temperature room=studyозначает, что временной ряд является временным рядом температуры учебной комнаты. - Не используйте пробелы в выражении фильтра.
Необязательные аргументы
LATEST (с версии RedisTimeSeries v1.8)
используется, когда временной ряд является сжатием. С помощью LATEST, TS.MGET также сообщает о сжатом значении последнего, возможно, частичного ведра, при условии, что начальное время этого ведра находится в пределах [fromTimestamp, toTimestamp]. Без LATEST, TS.MGET не сообщает о последнем, возможно, частичном ведре. Когда временной ряд не является сжатием, LATEST игнорируется.
Данные в последнем ведре сжатия, возможно, частичные. Ведро считается закрытым и сжатым только при поступлении новой выборки, которая открывает новое последнее ведро. Однако в некоторых случаях требуется также сжатое значение последнего, возможно, частичного ведра. В таком случае используйте LATEST.
WITHLABELS
включает в ответ все пары имя-значение, представляющие метки метаданных временного ряда. Если WITHLABELS или SELECTED_LABELS не указаны, по умолчанию возвращается пустой список пар имя-значение.
SELECTED_LABELS label... (с версии RedisTimeSeries v1.6)
возвращает подмножество пар имя-значение, представляющих метки метаданных временного ряда. Используйте, когда существует большое количество меток на серию, но требуются только значения некоторых из них. Если WITHLABELS или SELECTED_LABELS не указаны, по умолчанию возвращается пустой список пар имя-значение.
MGET не может быть частью транзакции при выполнении на кластере Redis.
Возвращаемое значение
-
Массив ответов: для каждого временного ряда, соответствующего заданным фильтрам, сообщается следующее:
- строка-ответ: имя ключа временного ряда
-
Массив ответов: пары имя-значение меток (Строка-ответ, Строка-ответ)
- По умолчанию возвращается пустой массив
- Если
WITHLABELSуказан, сообщаются все метки, связанные с этим временным рядом - Если
SELECTED_LABELS label...указан, сообщаются выбранные метки (значение null, если такая метка не определена)
- Массив ответов: пара временная метка-значение (Целое число, Простое строковое значение (двойное))
Примеры
Выбор меток для извлечения
Создание временных рядов для температуры в Тель-Авиве и Иерусалиме, затем добавление различных выборок температуры.
127.0.0.1:6379> TS.CREATE temp:TLV LABELS type temp location TLV
OK
127.0.0.1:6379> TS.CREATE temp:JLM LABELS type temp location JLM
OK
127.0.0.1:6379> TS.MADD temp:TLV 1000 30 temp:TLV 1010 35 temp:TLV 1020 9999 temp:TLV 1030 40
1) (integer) 1000
2) (integer) 1010
3) (integer) 1020
4) (integer) 1030
127.0.0.1:6379> TS.MADD temp:JLM 1005 30 temp:JLM 1015 35 temp:JLM 1025 9999 temp:JLM 1035 40
1) (integer) 1005
2) (integer) 1015
3) (integer) 1025
4) (integer) 1035Получение всех меток, связанных с последней выборкой.
127.0.0.1:6379> TS.MGET WITHLABELS FILTER type=temp
1) 1) "temp:JLM"
2) 1) 1) "type"
2) "temp"
2) 1) "location"
2) "JLM"
3) 1) (integer) 1035
2) 40
2) 1) "temp:TLV"
2) 1) 1) "type"
2) "temp"
2) 1) "location"
2) "TLV"
3) 1) (integer) 1030
2) 40Чтобы получить только метку location для каждой последней выборки, используйте SELECTED_LABELS.
127.0.0.1:6379> TS.MGET SELECTED_LABELS location FILTER type=temp
1) 1) "temp:JLM"
2) 1) 1) "location"
2) "JLM"
3) 1) (integer) 1035
2) 40
2) 1) "temp:TLV"
2) 1) 1) "location"
2) "TLV"
3) 1) (integer) 1030
2) 40См. также
TS.MRANGE | TS.RANGE | TS.MREVRANGE | TS.REVRANGE
Связанные темы
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ts.mget/