Согласно документации Redis, EXPIREAT имеет «точно такой же эффект и семантику, что и EXPIRE».
EXPIRE становится недействительным, когда ключ извлекается через GET
. В документации EXPIREAT
нет упоминания о подобном поведении, но не имеет смысла, чтобы EXPIREAT
больше не истекал при извлечении ключа.
Из-за расплывчатого характера документации я не могу сказать, каково фактическое поведение EXPIREAT
в этом сценарии.
На самом деле истечение срока действия при извлечении ключа - не единственный способ, согласно документации
Срок действия ключей Redis истекает двумя способами: пассивным и активным.
На ваш вопрос;
В кодовой базе Redis есть общая функция истечения срока действия, и в разделе комментариев говорится:
Это общая реализация команды для EXPIRE, PEXPIRE, EXPIREAT и PEXPIREAT.
«Мое оптимистическое предположение» состоит в том, что эти разные команды expire(или *at) вызывают эту функцию с разными параметрами, выполняя преобразование. Таким образом, команда EXPIREAT
также имеет то же поведение, что и EXPIRE
, и срок действия ключей истекает теми же двумя способами.
на самом деле это не влияет на поведение истечения срока действия @Alfie - и срок действия, и срок действия истекают одинаково, и они истекают через заданные секунды или временные метки.
Это действительно раздражает - я не думаю, что это логичный способ справиться с
EXPIREAT
. ИспользованиеEXPIREAT
будет означать, что вы действительно хотите, чтобы срок его действия истек в это время, несмотря ни на что... В любом случае, спасибо за ответ.