redis 为什么在Jedis中set()的nxxx参数是独占的?

tyg4sfes  于 2022-10-31  发布在  Redis
关注(0)|答案(2)|浏览(458)

在Jedis中,我想通过一次调用来设置一些具有过期时间的键和值。
我可以通过set()和expire()的组合来实现这一点,但它需要两次调用。
我发现了下面的方法:
set(最终字符串关键字,最终字符串值,最终字符串nxxx,最终字符串expx,最终长时间)
但我必须选择nx(仅在密钥不存在时设置密钥)或xx(仅在密钥已存在时设置密钥)。
两种情况我都要讲。
有什么建议吗?或者为什么要这样写?

bcs8qyzn

bcs8qyzn1#

Redis有一个SETEX命令,可以设置密钥的有效期。

jedis.setex(key, expireAfter, value);
bvjxkvbb

bvjxkvbb2#

这个问题很容易让人误解。nx和xx实际上是用于不同的用例,并且是互斥的。如果你想简单地覆盖任何过期时间,只要不传入以下任何一个就可以了:

  • NX --仅在密钥不存在时设置密钥
  • XX --仅在密钥已存在时设置密钥

相关问题