在设置同时指定 EX 和 KEEPTTL 选项的密钥时,Redis 会做什么?

What does Redis do when setting a key with both EX and KEEPTTL options specified?

我不清楚 Redis documentation 如果同时使用 EXKEEPTTL 选项,SET 命令会发生什么。

在我看来,有以下三种选择:

  1. 如果key存在,不修改TTL。如果密钥不存在 使用 EX 选项指定的到期时间
  2. 如果key存在,不修改TTL。如果钥匙不 存在,它不会设置过期并且条目永远存在
  3. 忽略 KEEPTTL 并设置新密钥和现有密钥的到期时间

是哪一个?

都没有。

相反,Redis returns 一个错误回复,因为这两个选项是冲突的。