redis缓存过期

3lxsmp7m  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(411)

我在ioredis中遇到了这个问题,在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也不会过期?

cwdobuhd

cwdobuhd1#

redis expire for a key设置为ttl秒。因此,任何小于或等于0的ttl值都将立即使密钥过期。这个问题不清楚,因为您已经解释过,任何小于或等于0的值都将使密钥立即过期。

velaa5lx

velaa5lx2#

TTL 命令返回三种类型的响应;
返回超时键的剩余生存时间(秒)。
如果键不存在,则返回-2。
如果密钥存在但没有关联的expire,则返回-1。

相关问题