温馨提示×

Redis如何设置过期时间

小樊
52
2025-06-29 18:08:07
栏目: 云计算

在 Redis 中,可以为键(key)设置过期时间,使其在指定的时间后自动删除。以下是几种常用的方法来设置键的过期时间:

1. 使用 EXPIRE 命令

EXPIRE 命令用于为指定的键设置过期时间(以秒为单位)。

语法:

EXPIRE key seconds 

示例:

SET mykey "Hello, Redis!" EXPIRE mykey 60 # 设置 mykey 在 60 秒后过期 

2. 使用 PEXPIRE 命令

PEXPIRE 命令与 EXPIRE 类似,但它以毫秒为单位设置过期时间。

语法:

PEXPIRE key milliseconds 

示例:

SET mykey "Hello, Redis!" PEXPIRE mykey 60000 # 设置 mykey 在 60000 毫秒(60 秒)后过期 

3. 在设置键值时直接指定过期时间

可以在 SET 命令中同时设置键的值和过期时间,使用 EXPXEXATPXAT 选项。

语法:

SET key value EX seconds SET key value PX milliseconds SET key value EXAT timestamp SET key value PXAT milliseconds-timestamp 

示例:

# 使用 EX 设置 60 秒后过期 SET mykey "Hello, Redis!" EX 60 # 使用 PX 设置 60000 毫秒(60 秒)后过期 SET mykey "Hello, Redis!" PX 60000 # 使用 EXAT 设置具体的过期时间戳(秒级) SET mykey "Hello, Redis!" EXAT 1697059200 # 使用 PXAT 设置具体的过期时间戳(毫秒级) SET mykey "Hello, Redis!" PXAT 1697059200000 

4. 使用 SETEX 命令

SETEXSETEXPIRE 的组合命令,用于在设置键值的同时指定过期时间(以秒为单位)。

语法:

SETEX key seconds value 

示例:

SETEX mykey 60 "Hello, Redis!" 

5. 使用 PSETEX 命令

PSETEXSETPEXPIRE 的组合命令,用于在设置键值的同时指定过期时间(以毫秒为单位)。

语法:

PSETEX key milliseconds value 

示例:

PSETEX mykey 60000 "Hello, Redis!" 

注意事项

  • 过期时间的精度: EXPIREPEXPIRE 设置的过期时间是近似的,Redis 会尽量在指定时间后删除键,但不保证精确到毫秒级别。

  • 持久化影响: 如果 Redis 使用 RDB 或 AOF 持久化,过期键在重启后可能会恢复。若希望键在过期后彻底删除,可以结合使用 volatileallkeys-lru 等过期策略。

  • 检查和修改过期时间: 可以使用 TTL 命令查看键的剩余过期时间,或使用 PERSIST 命令移除键的过期时间。

示例:

TTL mykey # 查看 mykey 的剩余过期时间(秒) PERSIST mykey # 移除 mykey 的过期时间 

通过以上方法,可以灵活地在 Redis 中为键设置过期时间,帮助管理内存和数据生命周期。

0