繁体   English   中英

Redis 缓存过期

[英]Redis Cache expiration

我在使用 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 也不会过期?

Redis EXPIRE 键的设置时间为 ttl 秒。 因此,任何小于或等于 0 的 ttl 值都会立即使密钥过期。 这个问题不清楚,因为您已经解释过小于或等于 0 的任何值都会使密钥立即过期。

TTL命令返回三种类型的响应

  • 返回以秒为单位超时的键的剩余生存时间。
  • 如果键不存在,则返回 -2。
  • 如果密钥存在但没有关联的过期时间,则返回 -1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM