如何在java中使redis在一个确切的时间到期?

wtzytmuj  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(207)

例如:我想让redis字符串“aKey”:“aValue”在未来某个时间过期(2018.08.17 00:00,现在是2018.08.16 12:00),这是我的解决方案:

  1. long expireTime = Date.from(LocalDateTime.now().with(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant()).getTime() - Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()).getTime();
  2. redisTemplate.opsForValue().set("aKey","aValue",expireTime, TimeUnit.SECONDS);

我想要一个完美的解决方案。

cczfrluj

cczfrluj1#

谢谢你的帮助,我知道了。Redis有一个“EXPIREAT”命令,在Java中可以这样使用:

  1. redisTemplate.opsForValue().set("aKey","aValue");
  2. redisTemplate.expireAt("aKey",Date.from(LocalDateTime.now().with(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant()));

相关问题