**
設定過期
預設情況下鍵是沒有生存時間的,也就是永不過期,除非清空記憶體。
設定的鍵的生存時間也很容易,可以通過4個命令設定(任選一即可):expire、pexpire、expireat、pexpireat命令,這4個命令看起來不同但是背後實現原理都是一樣的。常用的其實就是expire和pexpire這兩個,前者是以秒設定過期時間,後者是以毫秒。
以秒來設定,設定aaa這個鍵1秒後過期,1秒中以後再獲取aaa這個鍵則返回空。
以毫秒來設定,設定bbb這個鍵10毫秒後過期。
命令
說明
expirekey #s
將key的生存時間設定為#秒
pexpirekey #ms
將key的生存時間設定為#毫秒
expireatkey timestamp
將key的生存時間設定為unix時間戳,單位為秒
pexpireatkey timestamp
將key的生存時間設定為unix時間戳,單位為毫秒
上面這4個命令只是單位和表現形式上的不同,但實際上expire、pexpire以及expireat命令的執行最後都會使用pexpireat來實行。
比如使用expire來設定key的生存時間為n秒,那麼後台是如何執行的呢:
給鍵設定了過期時間,這個時間儲存在乙個字典裡,也是鍵值結構,鍵是乙個指標,指向真實的鍵,而值這是乙個長整型的unix時間。
獲取鍵的過期時間
如何檢視乙個鍵的生存時間多多少呢?可以使用ttl key來獲取(以秒來顯示),如下圖:
另外還有乙個命令是pttl key這個是以毫秒顯示。
清除鍵的過期時間
可以使用persist命令移除乙個鍵的過期時間,如下圖:
過期時間返回值的說明
通過ttl可以獲取乙個鍵的整數返回值
值
說明
-2過期且已刪除
-1沒有過期時間設定,即永不過期
>0
表示距離過期還有多少秒或者毫秒
redis的過期時間設定和過期刪除機制
redis的過期時間設定和過期刪除機制 expire 將鍵的生存時間設為 ttl 秒 pexpire 將鍵的生存時間設為 ttl 毫秒 expireat 將鍵的過期時間設為 timestamp 所指定的秒數時間戳 pexpireat 將鍵的過期時間設為 timestamp 所指定的毫秒數時間戳.二 ...
你應該知道的Redis過期鍵和過期策略
如何設定過期鍵 如何取消設定的過期時間 過期鍵的過期策略是怎樣的 rdb aof 和複製對過期鍵的處理又是怎樣的 redis 一共有 4 個命令來設定鍵的生存時間 可以存活多久 或過期時間 什麼時候被刪除 上述四種命令本質上都是通過 pexpireat 命令來實現的。例子 127.0.0.1 637...
Redis設定鍵的生存時間或過期時間
通過expire或pexpire命令,客戶端可以以秒或毫秒的精度為資料庫中的某個鍵設定生存時間。與expire和pexpire命令類似,客戶端可以通過expireat和pexpireat命令,以秒或毫秒精度給資料庫中的某個鍵設定過期時間,可以理解為 讓某個鍵在某個時間點過期。雖然時間單位或形式不同,...