溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-09 14:36:34 來源:網絡 閱讀:1852 作者:898009427 欄目:關系型數據庫

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

設置過期


默認情況下鍵是沒有生存時間的,也就是永不過期,除非清空內存。

設置的鍵的生存時間也很容易,可以通過4個命令設置(任選一即可):EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT命令,這4個命令看起來不同但是背后實現原理都是一樣的。常用的其實就是EXPIRE和PEXPIRE這兩個,前者是以秒設置過期時間,后者是以毫秒。

命令 說明
EXPIRE key #s 將KEY的生存時間設置為#秒
PEXPIRE key #ms 將KEY的生存時間設置為#毫秒
EXPIREAT key timestamp 將KEY的生存時間設置為UNIX時間戳,單位為秒
PEXPIREAT key timestamp 將KEY的生存時間設置為UNIX時間戳,單位為毫秒

上面這4個命令只是單位和表現形式上的不同,但實際上EXPIRE、PEXPIRE以及EXPIREAT命令的執行最后都會使用PEXPIREAT來實行。

比如使用EXPIRE來設置KEY的生存時間為N秒,那么后臺是如何運行的呢:

  • 它會調用PEXPIRE命令把N秒轉換為M毫秒

  • 然后獲取當前的UNIX時間單位也是毫秒

  • 把當前UNIX時間加上M毫秒傳遞給PEXPREAT

給鍵設置了過期時間,這個時間保存在一個字典里,也是鍵值結構,鍵是一個指針,指向真實的鍵,而值這是一個長整型的UNIX時間。

以秒來設置,設置aaa這個鍵1秒后過期,10秒中以后再獲取aaa這個鍵則返回空。

192.168.20.66:7000> set aaa 123
-> Redirected to slot [10439] located at 192.168.20.62:7000
OK
192.168.20.62:7000> get aaa
"123"
192.168.20.62:7000> expire aaa 10
(integer) 1
192.168.20.62:7000> ttl aaa
(integer) 7
192.168.20.62:7000> ttl aaa
(integer) 3
192.168.20.62:7000> ttl aaa
(integer) -2
192.168.20.62:7000> get aaa
(nil)

以毫秒來設置,設置bbb這個鍵10000毫秒后過期。

192.168.20.62:7000> set bbb 898
-> Redirected to slot [5287] located at 192.168.20.65:7000
OK
192.168.20.65:7000> pexpire bbb 10000
(integer) 1
192.168.20.65:7000> ttl bbb
(integer) 6
192.168.20.65:7000> ttl bbb
(integer) 2
192.168.20.65:7000> ttl bbb
(integer) -2
192.168.20.65:7000> get bbb
(nil)

獲取鍵的過期時間


查看一個鍵的生存時間(以秒來顯示):

ttl key

另外還有一個命令是pttl key這個是以毫秒顯示。

過期時間返回值的說明

| seconds值 | 說明 |
| -2 | 過期且已刪除 |
| -1 | 沒有過期時間設置,即永不過期 |
| >0 | 表示距離過期還有多少秒或者毫秒 |

清除鍵的過期時間


可以使用PERSIST命令移除一個鍵的過期時間:

192.168.20.65:7000> set aaa hello
-> Redirected to slot [10439] located at 192.168.20.62:7000
OK
192.168.20.62:7000> expire aaa 100
(integer) 1
192.168.20.62:7000> ttl aaa
(integer) 97
192.168.20.62:7000> persist aaa
(integer) 1
192.168.20.62:7000> ttl aaa
(integer) -1
192.168.20.62:7000> get aaa
"hello"
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女