ttl
1. 基本語法
ttl(key
, callback
)
key
, callback
) 查詢key
值的時效剩下幾秒(time to live)。針對key
值不存在或未設定效期等情境,根據版本的不同,回傳值也有差異,請參考以下表格:
版本
key不存在
key存在但未設定效期
Redis 2.6 開始
-1
-1
Redis 2.8 開始
-2
-1
2. 範例
(1) 為key值設定5秒效期,時間超過效期資料自動變空值。
client.setex('hello', 5, 'world');
client.ttl('hello', redis.print);
client.get('hello', redis.print);
Reply: 5
Reply: world
(2) 注意:ttl剩0秒的當下,仍然可能取得value(尚未變空值)
client.setex('hello', 5, 'world');
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
(async () => {
client.get('hello', redis.print);
client.ttl('hello', redis.print);
await delay(5000);
client.get('hello', redis.print);
client.ttl('hello', redis.print);
await delay(1000);
client.get('hello', redis.print);
client.ttl('hello', redis.print);
})();
Reply: 5
Reply: world
Reply: 0
Reply: world
Reply: -2
Reply: null
tag: expire
Last updated
Was this helpful?