PEXPIRE
命令用于为已设置的键设置过期时间,单位是毫秒。当键的过期时间到达时,Redis 会自动删除该键。PEXPIRE
命令的生效过程如下:
-
当客户端执行
PEXPIRE key milliseconds
命令时,Redis 会将键key
的过期时间设置为milliseconds
毫秒。 -
Redis 会将这个过期时间存储在键的元数据中。键的元数据是一个包含键值对的数据结构,其中键是过期时间(以毫秒为单位)。
-
Redis 会启动一个后台定时任务,用于检查键的过期时间是否到达。这个定时任务的执行频率取决于 Redis 的配置选项
maxmemory-policy
和maxmemory
。 -
当定时任务检查到键的过期时间到达时,Redis 会删除该键及其对应的值。
需要注意的是,PEXPIRE
命令设置的过期时间是相对于当前时间的,而不是绝对时间。例如,如果 PEXPIRE key 30000
被执行,那么键 key
的过期时间为 30 秒(30000 毫秒)。如果在这段时间内键仍然被使用,那么它的过期时间将被重置为新的执行 PEXPIRE
命令时的值。