Redis ttl意思

"TTL"是 "Time To Live" 的縮寫,它是一個與快取相關的概念,表示數據在快取系統中存儲的時間長度。在 Redis 中,TTL 用於控制 key 的過期時間,即 key 及其關聯的值在 Redis 伺服器上的存儲時長。

在 Redis 中,你可以為每個 key 設定一個過期時間,當 key 的過期時間到達時,Redis 會自動刪除該 key。這樣,即使你的應用程式沒有主動刪除 key,Redis 也能保證快取數據不會無限期地占用記憶體。

你可以使用 Redis 的 EXPIRE 命令來為 key 設定一個過期時間,單位是秒。例如,以下命令將 key mykey 的過期時間設定為 10 秒:

redis> EXPIRE mykey 10
(integer) 1

返回的 1 表示操作成功,過期時間設定成功。如果 key 已經存在並且已經設定了過期時間,EXPIRE 命令會更新該 key 的過期時間。

你也可以使用 TTL 命令來查看一個 key 的剩餘過期時間,單位是秒。如果 key 沒有設定過期時間,TTL 命令會返回 -1

redis> TTL mykey
(integer) -1

在 Redis 的事務和 Lua 腳本中,你可以使用 PEXPIREPTTL 命令來分別為 key 設定過期時間和查詢剩餘過期時間,這兩個命令使用毫秒作為單位。

redis> PEXPIRE mykey 10000
(integer) 1

redis> PTTL mykey
(integer) 9998

在 Redis 數據類型中,除了字元串(String)類型,其他數據類型(如列表、集合、有序集合和哈希)也支持過期時間。

過期鍵的管理是 Redis 自動完成的,Redis 通過一個後台執行緒定期檢查已過期的鍵,並從快取中刪除它們。這個過程被稱為鍵的「驅逐」(eviction)或「淘汰」(expiration)。

過期鍵的管理是 Redis 實現快取策略的一個重要部分,它可以幫助你控制快取的大小,避免記憶體溢出,同時也能保證快取數據的時效性。