我正在尝试向redis中的记录添加unix时间戳,因此我使用expireat来执行此操作。我已经能够达到我想要的使用以下:

tokenBlacklist.set(splitId[0], splitId[1]);
tokenBlacklist.expireat(splitId[0], tokenExp); //tokenExp example: 1558786197

现在,我想知道上面的解决方案是否有任何一行代码,比如:
tokenBlacklist.set(splitId[0], splitId[1], "EX", tokenExp);

最佳答案

SET命令只能指定ttl,而不能指定过期时间点。所以可以使用tokenExp - current-time-in-second作为参数。

tokenBlacklist.set(splitId[0], splitId[1], "EX", tokenExp - Math.round((new Date()).getTime() / 1000));

注:
我不熟悉javascript。如果获取当前unix时间的方法有误,请指出。谢谢。

10-02 12:22