Redis: найти все объекты старше

#python #redis

#python #redis

Вопрос:

Я храню несколько свойств объектов в хэш-наборах. Среди прочего, что-то вроде «даты создания». В базе данных есть несколько хэш-наборов.

Итак, мой вопрос в том, как я могу найти все объекты старше недели, например? Можете ли вы предложить алгоритм, который быстрее, чем O (n) (наивная реализация)?

Спасибо, Олесь

Комментарии:

1. Как выглядят «даты создания»? У вас есть по одному на каждый день?

2. @sberry2A нет, это только дата / время создания (строка). Я должен искать все такие объекты и обновлять.

Ответ №1:

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

Если у вас были непрерывные данные (что означает, что они были последовательно установлены через N интервалов времени), тогда вы могли бы сохранить хэш-ключ в качестве элемента и дату (как временную метку int) в качестве значения. Затем вы могли бы выполнить zrank для определенной даты и использовать zrevrange для запроса от первого ранга к значению, которое вы получаете от zrank.