You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java JedisCluster通过单命令设置带过期时间的键值对?

解决JedisCluster单条命令设置带过期时间的键值对

你找对方法啦!JedisCluster提供的那个多参数set接口,刚好对应Redis原生的SET key value [NX|XX] [EX seconds|PX milliseconds]命令,完全能实现单条命令设置键值对+过期时间的需求,不用再分两次请求浪费网络开销。

直接用这段代码就能搞定:

getJedisCluster().set(key, value, null, "EX", 3600);

我给你拆解下每个参数的作用:

  • 前两个key和value:就是你要存储的键和对应的值,这个不用多说
  • nxxx:用来设置执行条件,可选值是"NX"(仅当键不存在时才设置)或"XX"(仅当键存在时才更新)。如果不需要任何条件判断,直接传null或者空字符串就行,对应原生命令里不带NX/XX的普通设置场景
  • expx:指定过期时间的单位,"EX"代表秒,"PX"代表毫秒。你要1小时过期,用"EX"就对了
  • time:具体的过期时长数值,这里就是3600秒(1小时)

这么做除了减少一次网络往返,还能避免分开执行set和expire时可能出现的竞态问题——比如刚执行完set还没来得及expire,这个键就被其他操作意外修改了,单条命令能保证整个操作的原子性。

如果之后你有特殊需求,比如要确保只有键不存在时才设置并添加过期,只需要把第三个参数改成"NX":

getJedisCluster().set(key, value, "NX", "EX", 3600);

内容的提问来源于stack exchange,提问作者JaskeyLam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:50:40