2017-01-24 1 views
0

Необходимо очистить концепцию о redis EXPIRE операции.Эксперимент с ключевой волатильностью в redis

Представьте я пишу следующий код:

HMSET myself name "Sam" age "21" 
EXPIRE myself 60 

Это устанавливает хэш myself={'name':'Sam','age':'21'} (используя словарь питона, чтобы проиллюстрировать концепцию). Более того, он устанавливает myself истек через 60 секунд.

Что происходит с установкой EXPIRE, если я выполняю пару операций на myself? Например .:

HINCRBY myself age 1 
HSET myself gender f 

Будет EXPIRE оставаться нетронутыми, или он будет удален? И, сделав еще один шаг, у нас есть коды redis, которые контролируют, остается ли в этом случае EXPIRE?

+0

Команда Redis имеет команду [ttl] (https://redis.io/commands/ttl), которая вернет вам оставшийся срок службы ключа :) –

ответ

1

Истекает, и TTL будет продолжать уменьшаться.

От Redis doc:

изменения значения поля хеша с ... (H Установите) оставит таймаут нетронутую

Как было сказано выше Морис Мейер, вы можете использовать, чтобы получить TTL myself оставшееся время для жизни ключа mysef, и поэтому используйте его для своих экспериментов.