Получить время последнего доступа к данному ключу Redis

Я хотел бы просмотреть время последнего доступа к определенному ключу на моем сервере Redis.

Я знаю, что эта информация хранится для каждого ключа, потому что она используется в алгоритме Redis LRU для удаления старых ключей.

Есть ли простой способ увидеть эту информацию для данного ключа?


person Peter Berg    schedule 07.10.2014    source источник
comment
@Javier Я ценю это мнение, но LRU на самом деле означает наименее недавно использовавшееся, по крайней мере, в контексте алгоритма LRU. en.wikipedia.org/wiki/Cache_algorithms   -  person Peter Berg    schedule 08.10.2014


Ответы (2)


Для этой цели можно использовать команду OBJECT IDLETIME. Он возвращает количество секунд с момента доступа к ключу, но если вам нужно время, просто вычтите ответ из now().

person Itamar Haber    schedule 07.10.2014
comment
Фантастика. Спасибо. - person Peter Berg; 08.10.2014
comment
Но это не даст эпохи... Также нельзя отделить последнюю запись от последнего чтения... - person Kanagavelu Sugumar; 14.11.2017
comment
Правда, далеко не идеал, но это то, что есть - person Itamar Haber; 15.11.2017

Ответ Итамара Хабера, безусловно, лучший, но я считаю, что есть и другой путь.

Вы можете использовать команду DEBUG OBJECT, хотя, как следует из ее названия, это команда отладки и не должна (действительно) использоваться. Его вывод дает вам LRU.

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

person Arnaud Potier    schedule 08.10.2014
comment
Очень верно. Также имейте в виду, что DEBUG обычно заблокирован (хотя, скорее всего, OBJECT также запрещен ;)) в хорошо поддерживаемых производственных средах. - person Itamar Haber; 08.10.2014
comment
@ItamarHaber Почему OBJECT будет заблокирован в хорошо поддерживаемой производственной системе? - person Shiplu Mokaddim; 11.09.2019