我使用 redisson java 客户端在 Redis 中存储键和值。 例子如下
RMapCache<String, Integer> mapCache = redisson.getMapCache("test");
// with ttl = 10 seconds
Integer prevValue = mapCache.put("1", 10, 10, TimeUnit.SECONDS);
当我在mapCahce上执行get操作时,有没有办法获取密钥的剩余ttl?
目前您可以使用
RKeys
并查询您感兴趣的键
RKeys rkeys = redissonClient.getKeys();
long ttl = rkeys.remainTimeToLive(key);
如果有一个包装器可以公开键的值和 ttl,那就太好了
@Xipo 那么,如果您想要 redis 键的 TTL(在您的情况下为“测试”)。仅当您使用
mapCache.expire(long timeToLive, TimeUnit timeUnit)
时才会返回一些内容。
如果您想要哈希中单个条目的 TTL(在您的情况下为“1”),您可以使用:
long ttl = mapCache.remainTimeToLive("1");
无论您设置的 10 秒还剩多少时间,它都应该返回,或者 dne 为 -1。