首页/数据/数据库速查/EXPIRE 条件选项 NX/XX/GT/LT(7.0)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

EXPIRE 条件选项 NX/XX/GT/LT(7.0)

EXPIRE 支持 NX/XX/GT/LT 条件设置与 EXPIRETIME/PEXPIRETIME 读取绝对过期时间:刷新 TTL 时不再盲目覆盖,避免把长 TTL 改短或反之。

数据库速查数据更新于 2026-10-12

条件刷新

条件刷新
SET k v
EXPIRE k 60 NX        # 仅当还没有 TTL 时设置
EXPIRE k 120 XX       # 仅当已有 TTL 时更新
EXPIRE k 30 GT        # 仅当新 TTL 更大才更新(永久键视为无限大 -> 不生效)
EXPIRE k 30 LT        # 仅当新 TTL 更小才更新(永久键 -> 生效)
TTL k                 # 剩余秒数
EXPIRETIME k          # 绝对过期时间(秒级时间戳,7.0)
PEXPIRETIME k         # 毫秒级绝对时间
NX无 TTL 才设置
XX有 TTL 才更新
GT新 TTL 大于当前才更新;永久键永不满足
LT新 TTL 小于当前才更新;永久键视为无限大,总满足
「续期不动别人的短 TTL」用 GT;「临时降级不拉长」用 LT;两个都能防止 TTL 刷新逻辑互相踩。

易错点

  • 对永久键用 GT 设 TTL:不会生效(会被当成比无限大还大)
  • 老版本(<7.0)传 NX/GT 直接语法报错,升级客户端库要确认

数据来源与参考

  • Redis 官方文档: EXPIRE
  • Redis 官方文档: EXPIRETIME

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌