示例:我要使redis字符串“akey”:“avlaue”在将来某个时间过期(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);

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

最佳答案

谢谢你的帮助,我明白了;redis有“expireat”命令;
我可以用这个替换我的代码:
redistemplate.optsfervalue().set(“akey”,“avalue”);
redistemplate.expireat(“akey”,date.from(localdatetime.now().with(localtime.max).atzone(zoneid.systemdefault()).toinstant()));

关于java - 如何让redis在java中的确切时间到期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51871913/

10-12 22:36