如何获取 ttl 以及 redis/redisson 中键的值

问题描述 投票:0回答:2

我使用 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?

java redis redisson
2个回答
3
投票

目前您可以使用

RKeys
并查询您感兴趣的键

RKeys rkeys = redissonClient.getKeys();
long ttl = rkeys.remainTimeToLive(key);

如果有一个包装器可以公开键的值和 ttl,那就太好了


0
投票

@Xipo 那么,如果您想要 redis 键的 TTL(在您的情况下为“测试”)。仅当您使用

mapCache.expire(long timeToLive, TimeUnit timeUnit)
时才会返回一些内容。

如果您想要哈希中单个条目的 TTL(在您的情况下为“1”),您可以使用:

long ttl = mapCache.remainTimeToLive("1");

无论您设置的 10 秒还剩多少时间,它都应该返回,或者 dne 为 -1。

© www.soinside.com 2019 - 2024. All rights reserved.