鍵到期功能
讓 Redis 在指定的時間自動刪除特定的鍵。 鍵到期功能的相關命令
| 類型 |
命令 |
| 設定存留時間 |
EXPIRE 命令和 PEXPIRE 命令。 |
| 設定到期時間 |
EXPIREAT 命令和 PEXPIREAT 命令。 |
| 查看剩餘存留時間 |
TTL 命令和 PTTL 命令。 |
| 刪除存留時間或到期時間 |
PERSIST 命令。 |
EXPIRE key seconds
將鍵 key 的存留時間設定為指定的秒數。
PEXPIRE key milliseconds
將鍵 key 的存留時間設定為指定的毫秒數。
如果給定的鍵不存在,那麼 EXPIRE 和 PEXPIRE 將返回 0 ,表示設定失敗;如果命令返回 1 ,那麼表示設定成功。
EXPIREAT key timestamp
將鍵 key 的到期時間設定為指定的秒級 UNIX 時間戳記。
PEXPIREAT key milliseconds-timestamp
將鍵 key 的到期時間設定為指定的毫秒級 UNIX 時間戳記。
如果給定的鍵不存在,那麼 EXPIREAT 和 PEXPIREAT 將返回 0 ,表示設定失敗;如果命令返回 1 ,那麼表示設定成功。
TTL key
以秒為單位,返回鍵的剩餘存留時間。
PTTL key
以毫秒為單位,返回鍵的剩餘存留時間。
TTL 和 PTTL 可能會返回三種不同的值:
| 傳回值 |
意義 |
| -2 |
鍵不存在。 |
| -1 |
鍵存在,但沒有設定到期時間或者存留時間。 |
| = 0 |
鍵的剩餘存留時間。 |
PERSIST key
移除為鍵 key 設定的到期時間或存留時間,使得它不會被 Redis 自動刪除。 鍵到期功能的應用
自動更新緩衝、自動重新整理熱門排行榜、定時刪除的使用者 Session。
SETEX key seconds value
設定鍵key的值為value,seconds秒後到期
PSETEX key milliseconds value
設定鍵key的值為value,milliseconds毫秒後到期
儘管目前 SETEX 和 PSETEX 都能正常使用,但我個人還是建議盡量使用 SET 而不是 SETEX 或者PSETEX ,因為使用 SET 來設定存留時間更簡潔一些,而比較舊的 SETEX 和 PSETEX 在將來可能會被廢棄。