问题

Redis 中带 EX 选项的 SET 和 SETEX 的区别?


在浏览 Redis 命令参考时,我遇到了两个非常相似的命令:

  • SETEX 选项:https://redis.io/commands/set
  • SETEX:https://redis.io/commands/setex

SETEX 自诩为执行 SETEXPIRE 的原子方式,但从外观上看,同样的事情可以用 SET EX 因为它也是一个命令。

2.0.0中加入了 SETEX,2.6.12中加入了 EX参数,所以为了向后兼容,似乎还是前者,但由于某种原因,它没有被标记为已弃用。

我错过了什么吗?现在有使用 SETEX 的有效案例吗?

推荐答案

SET 文档说:

注意:由于 SET 命令选项可以替代 SETNX,SETEX,PSETEX,这是可能的,在未来的版本的 Redis 这三个命令将被弃用和最终删除。

因此可以肯定地说,如果您拥有 Redis 2.6.12 或更高版本,则没有理由使用 SETEX