Redis中的expire和ttl指令


指令一:

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 的剩余生存時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM