redis expire不会在服务器中过期
我正在尝试自动将redis中的密钥过期
when=10 unit='seconds' redisClient.expireat(key,moment().add(when,unit));
在redis cli键*我可以看到我设置的密钥
> TTL 472962f1-10ad8-4c4d-bc5e-2e38b632f36 (integer) -1 > Exists 472962f1-10ad8-4c4d-bc5e-2e38b632f36 (integer) 1
10秒后它不会被删除!
我正在使用时间来得到的时间,因为我必须分享的信息,作为回应,这个键不会在这之后工作。
var whenKeyExpire = moment().add(when,unit).format('MM-DD-YYYY hh:mm:ss A')
在你的情况下,你将错误的值传递给expireat
函数的参数。 对于这个function,你必须在这里检查。 在这个函数中你必须通过unixtime。 所以对于你的情况,你可以做这样的事情:
var when=10; var unit="seconds"; redisClient.expireat(key, +new Date(moment().add(when,unit)), function (err, didSetExpiry){ if(err){ console.log("Error occured: " + err); } else { console.log("Redis Key Operation is successful"); } });
希望这会有所帮助。
如果密钥存在,则Ttl返回-1,但没有关联的过期。
我不是节点客户端,但我很确定过期时间没有设置成功。