RedisのEXPIREATは、キーの有効期限を指定するために使用されることを知っています。しかし、私の問題は、UNIXの絶対タイムスタンプが必要なことです。キーを1日の終わりに失効させたい場合、引数として何を設定すべきかを考えるのに苦労しています。
これは私のキーを設定する方法です:
client.set(key、body);
したがって、有効期限を設定するには:
client.expireat(key、???);
何か案は?これをnodejsとsailsjsで使用していますありがとう!
24時間後に期限切れにする場合
_client.expireat(key, parseInt((+new Date)/1000) + 86400);
_
または、今日の終わりに期限切れにする場合は、new Date()
オブジェクトで _.setHours
_ を使用して、一日の終わりの時刻を取得できます。それを使用します。
_var todayEnd = new Date().setHours(23, 59, 59, 999);
client.expireat(key, parseInt(todayEnd/1000));
_
SETNX、SETEX、PSETEXは次のリリースで非推奨になるため、正しい方法は次のとおりです。
client.set(key, value, 'EX', 60 * 60 * 24, callback);
上記の詳細については、 here を参照してください。
値と有効期限を一緒に設定できます。
//here key will expire after 24 hours
client.setex(key, 24*60*60, value, function(err, result) {
//check for success/failure here
});
//here key will expire at end of the day
client.setex(key, parseInt((new Date().setHours(23, 59, 59, 999)-new Date())/1000), value, function(err, result) {
//check for success/failure here
});