node.js - 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 也不会过期?
解决方案
键的 Redis EXPIRE 以 ttl 秒为单位设置。因此,任何小于或等于 0 的 ttl 值都会立即使密钥过期。这个问题不清楚,因为您已经解释过小于或等于 0 的任何值都会使密钥立即过期。
推荐阅读
- asp.net-mvc - 未捕获的类型错误:c(...).tScrollable 不是函数
- python - 分类编码后处理不平衡数据
- java - 使用 Apache Camel 进行 PGP 加密
- dynamics-crm-2011 - 为什么每次创建新记录时,我发现 ID 增加 2 不是正常方式?
- python - 替换字典列表中字典的特定项目?
- spring-boot - 有没有办法用假装弹簧客户端只记录身体?
- rest - 通过角度6访问rest-api时出现CORS错误
- batch-file - 根据命名约定删除所有目录
- delphi - Codesite 日志记录中的错误时间戳
- arrays - 未定义的方法 Ruby