天天看點

redis将一個key設定為永不過期

這次介紹三個 redis 指令:

Expire 指令用于設定 key 的過期時間,key 過期後将不再可用。機關以秒計。

PERSIST 指令用于移除給定 key 的過期時間,使得 key 永不過期。

TTL 指令以秒為機關傳回 key 的剩餘過期時間。

Expire

EXPIRE key_name

設定成功傳回 1 。 當 key 不存在或者不能為 key 設定過期時間時(比如在低于 2.1.3 版本的 Redis 中你嘗試更新 key 的過期時間)傳回 0 。

PERSIST

PERSIST key_name

當過期時間移除成功時,傳回 1 。 如果 key 不存在或 key 沒有設定過期時間,傳回 0 。

TTL

TTL key_name

當 key 不存在時,傳回 -2 。 當 key 存在但沒有設定剩餘生存時間時,傳回 -1 。 否則,以秒為機關,傳回 key 的剩餘生存時間。

注意:在 Redis 2.8 以前,當 key 不存在,或者 key 沒有設定剩餘生存時間時,指令都傳回 -1 。

127.0.0.1:6379> set keyname "hello world"
OK
127.0.0.1:6379> TTL keyname
(integer) -1
127.0.0.1:6379> expire keyname 60    # 設定60秒過期
(integer) 1
127.0.0.1:6379> TTL keyname         # 查詢過期剩餘時間
(integer) 42
127.0.0.1:6379> persist keyname    # 移除 key 的生存時間,設定永不過期
(integer) 1
127.0.0.1:6379> TTL keyname
(integer) -1
127.0.0.1:6379>