Данные Redis Timeseries - Миллионы записей в Ha sh и отсортированный набор - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь использовать redis в качестве временных рядов, и для этого я использую Sorted Sets и Ha sh. Ха sh будет хранить мой доменный объект, и отсортированный набор будет иметь ссылку на него с оценкой как время. Поскольку я получаю записи в миллисекундах c и с пропускной способностью около 300 КБ / с c, что является лучшим способом быстрее записать их на Redis. Со стороны записи у меня есть два запроса ниже:

repository.save (data); // для сохранения объекта данных в ha sh с использованием репозитория данных Spring redis redisTemplate.opsForZSet (). add (key, memberValue, data.getSourceTime ()); // создаем отсортированный набор для ссылки ha sh в качестве метки времени как члена.

Я ищу более быстрый способ хранения этих данных.

1 Ответ

1 голос
/ 02 марта 2020

Существует два варианта, помимо классов c sortedsets + hashes, Streams и RedisTimeSeries.

RedisTimeSeries - если ваши данные имеют значения c (например, данные датчика, такие как температура) ) вы можете хранить серию внутри ключа без какой-либо дополнительной работы. Дополнительные функции:

  • Встроенное сжатие, позволяющее сэкономить место
  • Автомат c понижающая дискретизация
  • Запрос по меткам нескольких клавиш

https://github.com/RedisTimeSeries/RedisTimeSeries/

Потоки - Если у вас есть поток событий, которые не являются числами c, и вам нет дела до чисел c оптимизация на основе [некоторое сжатие существует для одного и того же ввода поля].

Оба поддерживают кэппирование и ранжированный запрос.

https://github.com/RedisTimeSeries/RedisTimeSeries/

Раскрытие: я инициировал проект RedisTimeSeries в redislabs.

...