Spec-Zone.ru › Redis

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

Связанные темы

RedisTimeSeries

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ts.mget/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API