«

Redis设置过期时间

时间:2026-10-20 07:20     作者:emer     分类: 无


Redis设置过期时间

引言

缓存键必须带TTL自动失效,否则热点数据永久驻留直到内存写满。EXPIRE设置秒级过期,PEXPIRE毫秒,SET组合NX/EX可一步完成写入带过期,是防止缓存永久堆积的基本功。

写入时直接带过期

SET code:1001 123456 EX 300 NX

EX 300表示5分钟后过期,NX只在键不存在时写入,一次命令完成防重复与失效。

给已有键补过期

EXPIRE code:1001 300

键存在返回1,键不存在返回0,只设置剩余存活秒数。

查看剩余存活

TTL code:1001

返回剩余秒数;-1表示永久不过期,-2表示键已不存在。

毫秒级过期

PEXPIRE code:1001 300000
PTTL code:1001

对验证码、限流等需要毫秒精度的场景使用。

取消过期变永久

PERSIST code:1001

移除TTL让键永久保留,需要长期数据时用。

绝对值过期

EXPIREAT code:1001 1760000000

以Unix时间戳设定具体到期时刻,适合定时失效场景。

注意事项

总结

SET加EX一步写入带秒级TTL,EXPIRE给已有键补过期,TTL查剩余秒数,PEXPIRE/PTTL用毫秒,PERSIST取消过期变永久,EXPIREAT按时间戳定点失效。注意覆盖写会清TTL需重设,hash字段无单独过期,分布式锁要原子NX加过期,批量过期错开避免雪崩。

标签: Redis expire ttl 过期时间 缓存策略