java - 如何在java中让redis在准确的时间过期?

标签 java redis

例子:我想让redis string "aKey":"aValue"expired at a future time(2018.08.17 00:00, now is 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”命令,在Java中可以这样使用:

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

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

相关文章:

java - 两个不同的模型属性,具有相同的名称,每个传递给不同的 View ,但在同一个 Controller 中

java - 在静态方法 Java 中使用泛型返回值

ruby - 运行 Redis 作为 Redmine 的外部缓存服务器

php - Laravel 4.2 中用于缓存和 session 的不同 redis 数据库

java - Jedis ClassNotFound 和 NoClassDefFoundError

java - 无法在 RecyclerView 中使用 ViewHolder

java - Spring注释与hibernate集成中的文件未找到异常

javascript - 在 JavaScript 循环中创建和使用变量

Redis 集群 live reshard 故障

java - Jackson 自定义序列化和反序列化