Redis 過期鍵的設定 獲取和刪除過期時間

2022-06-19 09:09:09 字數 1420 閱讀 9920

**

設定過期

預設情況下鍵是沒有生存時間的,也就是永不過期,除非清空記憶體。

設定的鍵的生存時間也很容易,可以通過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命令,以秒或毫秒精度給資料庫中的某個鍵設定過期時間,可以理解為 讓某個鍵在某個時間點過期。雖然時間單位或形式不同,...