指令一:
EXPIRE key seconds(單位/秒)
為給定 key
設置生存時間,當 key
過期時(生存時間為 0
),它會被自動刪除。
在 Redis 中,帶有生存時間的 key
被稱為『易失的』(volatile)。
生存時間可以通過使用 DEL 命令來刪除整個 key
來移除,或者被 SET 和 GETSET 命令覆寫(overwrite),這意味着,如果一個命令只是修改(alter)一個帶生存時間的 key
的值而不是用一個新的 key
值來代替(replace)它的話,那么生存時間不會被改變。
比如說,對一個 key
執行 INCR 命令,對一個列表進行 LPUSH 命令,或者對一個哈希表執行 HSET 命令,這類操作都不會修改 key
本身的生存時間。
另一方面,如果使用 RENAME 對一個 key
進行改名,那么改名后的 key
的生存時間和改名前一樣。
RENAME 命令的另一種可能是,嘗試將一個帶生存時間的 key
改名成另一個帶生存時間的 another_key
,這時舊的 another_key
(以及它的生存時間)會被刪除,然后舊的 key
會改名為 another_key
,因此,新的 another_key
的生存時間也和原本的 key
一樣。
使用 PERSIST 命令可以在不刪除 key
的情況下,移除 key
的生存時間,讓 key
重新成為一個『持久的』(persistent) key
。
更新生存時間
可以對一個已經帶有生存時間的 key
執行 EXPIRE 命令,新指定的生存時間會取代舊的生存時間。
過期時間的精確度
在 Redis 2.4 版本中,過期時間的延遲在 1 秒鍾之內 —— 也即是,就算 key
已經過期,但它還是可能在過期之后一秒鍾之內被訪問到,而在新的 Redis 2.6 版本中,延遲被降低到 1 毫秒之內。
指令二:
TTL key
以秒為單位,返回給定 key
的剩余生存時間(TTL, time to live)。
返回值:
key
不存在時,返回 -2
。
key
存在但沒有設置剩余生存時間時,返回 -1
。
key
的剩余生存時間。