REDIS 如何从密钥中删除到期

Yeh*_*wad 3 redis

我已经搜索到足够公平的结论,这样的问题还没有被问到。

假设我们有一个 Redis SET KEY:

SET TEST_KEY 1
TTL TEST_KEY ## -1 (unlimited)
EXPIRE TEST_KEY 1000 # 1
TTL TEST_KEY ## 1000 (1000 seconds)
Run Code Online (Sandbox Code Playgroud)

假设现在我希望从这个特定的密钥中删除到期时间,所以TTL会返回-1,该怎么办?我试过设置为EXPIRE-1但没有用

小智 9

使用 PERSIST 命令

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> PERSIST mykey
(integer) 1
redis> TTL mykey
(integer) -1
redis> 
Run Code Online (Sandbox Code Playgroud)


for*_*ack 6

只需使用以下SET命令重置它:

SET TEST_KEY 1
TTL TEST_KEY  ## -1
Run Code Online (Sandbox Code Playgroud)

一个更通用的命令,也适用于LISTSET等等,是PERSIST

PERSIST TEST_KEY
TTL TEST_KEY   ## -1
Run Code Online (Sandbox Code Playgroud)