首页 > 解决方案 > Redis 缓存过期

问题描述

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

标签: node.jstypescriptredisioredis

解决方案


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


推荐阅读