2017-02-07 2 views

ответ

-1

К сожалению, в Redis нет функции max_age, за исключением случаев, когда вы устанавливаете TTL для каждой клавиши.

+0

Как настроить TTL для каждой клавиши даст возраст самого старого ключа? – Amit

2

Redis не спасает возраст ключей. Если вы установите фиксированный TTL на всех клавишах, вы можете пробовать несколько ключей, и, просмотрев их TTL, вы можете узнать их возраст (поскольку все объекты имеют одинаковый TTL). Таким образом, вы можете статистически оценить самый старый ключ.

+0

Это даст старейший ключ, но не возраст самого старого ключа. Мой случай использования заключался в ежедневном очистке кеша, и я планировал использовать max_age для проверки работоспособности, т. Е. Ничего не осталось с предыдущего дня в кеше. Вероятно, я могу жить с командой EXPIREAT, то есть очистить ключ на границе дня или установить TTL = дневной границы - текущее время. – Amit

+0

@ Признайте, что это даст вам приблизительный возраст самого старого ключа. Возраст всегда '$ GLOBAL_TTL - $ OBJECT_TTL', т. Е. Объект с 6400 секундами TTL был создан 80000 секунд назад. Так или иначе, звучит так, будто вы просто ищете LRU и срок действия, который делает redis без сохранения возраста. –

+0

У Redis нет глобального ttl. Однако установка day_boundary (что мы можем считать глобальным ttl) - текущее время, когда работает ttl, просто делает это в приложении медленным (код python). – Amit

Смежные вопросы