You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js TypeScript中Redis SET命令过期时间无效报错原因咨询

Redis set命令报错:ERR invalid expire time in 'set' command 原因及解决办法

问题原因

  • Redis的EX参数要求传入正整数(单位为秒),用于设置键的过期时间,0属于无效值,Redis会直接返回错误。
  • 你的RedisPrimary.set方法默认将expire参数设为0,调用时未传入自定义过期时间时,会把{ EX: 0 }传递给Redis客户端,这就触发了无效过期时间的报错。

解决办法

修改RedisPrimary.set方法,当expire为0时,不传递EX选项,这样Redis就不会为键设置过期时间,符合你“无过期”的预期:

async set(key: string, value: string, expire: number = 0): Promise<boolean> {
    const options = expire > 0 ? { EX: expire } : {};
    const resultSet = await this.client.set(key, value, options);
    return resultSet === "OK";
}

内容的提问来源于stack exchange,提问作者Juls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 23:25:54