Redis是一个开源内存数据库。默认情况下,Redis的key是永久的,除非手动将其删除。但是,在某些业务场景下,你需要让某些key在一定时间后自动失效,或者被删除。这里我们简单说说如何设置key的expire时间,以及如何管理key的expire设置。
我们使用Redis 4.0.9,Ubuntu 18.04服务器进行了测试。建立一个测试数据库,使用自带的redis-cli命令行工具。
设置key的过期时间
通常使用expire命令设置现有key的过期时间,expire需要key名称和直到过期的秒数作为参数。示例如下。
set key_test "hello" expire key_test 450 # 450秒后过期
也可以设置一个未来的特定时间过期,如 2025年5月1日晚上8:30分(请注意时区),可以使用以下命令:
expireat key_test 1746131400
检查密钥设置的expire时间
ttl key_test
444
pttl key_melon # 以毫秒为单位
444506
取消expire超时时间设置
如果key已设置为expire过期,则任何针对key内容的命令(如set或getset)都会清除key的超时设置。要手动清除key的超时,可以使用以下persist命令:
persist key_test
如果成功完成,该persist命令将返回1,表明该kay将永久保存。