是的,Redis 可以根據訊息的儲存時長(TTL, Time-To-Live)自動刪除鍵。您可以透過設定鍵的過期時間來實現這一點。以下是一些相關的命令和使用示例:
設定過期時間的命令
-
EXPIRE:為鍵設定過期時間(以秒為單位)。
EXPIRE key seconds
-
PEXPIRE:為鍵設定過期時間(以毫秒為單位)。
PEXPIRE key milliseconds
-
EXPIREAT:為鍵設定一個具體的過期時間點(以 UNIX 時間戳表示,秒為單位)。
EXPIREAT key timestamp
-
PEXPIREAT:為鍵設定一個具體的過期時間點(以 UNIX 時間戳表示,毫秒為單位)。
PEXPIREAT key timestamp
-
SET:直接在設定鍵值的同時設定過期時間。
SET key value EX seconds
查詢過期時間的命令
-
TTL:檢視鍵的剩餘生存時間(以秒為單位)。
TTL key
-
PTTL:檢視鍵的剩餘生存時間(以毫秒為單位)。
PTTL key
刪除過期時間的命令
- PERSIST:移除鍵的過期時間,使其永久存在。
PERSIST key
示例
以下是一些示例,展示如何使用這些命令來設定和管理鍵的過期時間:
示例 1:使用 EXPIRE 設定過期時間
SET myKey "myValue"
EXPIRE myKey 60 # 設定 myKey 在 60 秒後過期
示例 2:在設定鍵值時指定過期時間
SET myKey "myValue" EX 60 # 設定 myKey 在 60 秒後過期
示例 3:檢查鍵的剩餘生存時間
TTL myKey # 檢視 myKey 的剩餘生存時間(秒)
PTTL myKey # 檢視 myKey 的剩餘生存時間(毫秒)
示例 4:移除鍵的過期時間
PERSIST myKey # 移除 myKey 的過期時間
示例 5:使用 EXPIREAT 設定具體的過期時間點
# 假設當前 UNIX 時間戳為 1622547800
EXPIREAT myKey 1622547900 # 設定 myKey 在 1622547900 時間點過期
過期鍵的自動刪除
Redis 會自動刪除過期的鍵,刪除的方式包括以下兩種:
- 惰性刪除:當客戶端訪問一個鍵時,如果該鍵已經過期,Redis 會立即刪除它並返回空值。
- 定期刪除:Redis 會週期性地掃描一部分鍵,主動刪除其中已經過期的鍵。
透過以上方法,您可以輕鬆地管理 Redis 中鍵的生存時間,使其在合適的時間點自動刪除,從而有效地管理快取和資源。