Срок действия Redis Cache - PullRequest
1 голос
/ 06 мая 2020

Я столкнулся с этой проблемой с ioredis, где я создал ключ и установил срок его действия. Мой код выглядит примерно так:

let temp1 = acct.limit;
let txn = array.length;
let cache = new ioredis(); // note that this is not the exact code snippet
let ttl = txn / temp1;
cache.set('key', true, Math.ceil(ttl));

Проблема, с которой я столкнулся, заключается в том, что иногда ttl является положительным числом, а иногда отрицательным. Таким образом, приводит к убеждению, что возможно -1 для неограниченного ttl. Но после дальнейших исследований, а также проб и ошибок значение, меньшее или равное 0, немедленно истекает. Так что мой вопрос действительно в том, почему срок действия некоторых ключей не истекает даже с установленным ttl?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020
Команда

TTL возвращает три типа ответов ;

  • Возвращает оставшееся время жизни ключа с таймаутом в секундах.
  • Возвращает -2, если ключ не существует.
  • Возвращает -1, если ключ существует, но не имеет срока действия.
0 голосов
/ 06 мая 2020

Redis EXPIRE для ключа устанавливается в ttl секундах. Таким образом, любое значение, меньшее или равное 0 для значения ttl, немедленно истечет срок действия ключей. Вопрос не ясен, потому что вы уже объяснили, что значение, меньшее или равное 0, приведет к немедленному истечению срока действия ключа.

...