如何在Java中的确切时间使Redis过期?

时间:2018-08-16 07:36:47

标签: java redis

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

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

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

1 个答案:

答案 0 :(得分:1)

谢谢您的帮助,我明白了; redis具有“ EXPIREAT”命令; 我可以用这个替换我的代码: redisTemplate.opsForValue()。set(“ aKey”,“ aValue”); redisTemplate.expireAt(“ aKey”,Date.from(LocalDateTime.now()。with(LocalTime.MAX).atZone(ZoneId.systemDefault())。toInstant()));