Хэши запросов в Redis по дате

Модель, сохраняемая в Redis, содержит два поля даты — startdate и enddate. Я вставил все данные в хеши. Более 10 тыс. Как я могу эффективно запрашивать оба поля даты в качестве параметров. На данный момент я привожу все хэши из БД, десериализую их и запрашиваю результаты. Не эффективно, но работает для теста. Было интересно, как добиться этого наилучшим образом. Спасибо


person sis    schedule 18.03.2016    source источник


Ответы (1)


Redis не предназначен для запросов. Вам нужно хранить данные так, как вы хотите, чтобы они позже требовались от прикладного уровня.

Например, если вы хотите получить свои модели в порядке возрастания по дате начала, вам нужно сохранить идентификаторы ваших моделей в отсортированном наборе с указанием даты начала< /em> как целое число, и оно будет использоваться как отсортированный набор элементов score.

Если вы хотите получить свои модели с более сложными критериями, вам придется потрудиться, чтобы вычислить оценки, основанные не только на свойстве модели, чтобы сохранить их в других отсортированных наборах.

Позже вы сможете получить диапазоны (zrange, zrevrange...) этих упорядоченных идентификаторов, чтобы передать их команде hmget, которая получит все значения для заданных идентификаторов.

Вы должны думать о Redis как об индексе индексов. Речь идет об индексации ваших данных для их эффективного извлечения.

person Matías Fidemraizer    schedule 18.03.2016