咖啡因缓存-如何获取元素的创建日期信息

是否可以通过caffeineCache访问元素的创建时间戳? cache.get("x").getTimestamp()种?

ysw920221 回答:咖啡因缓存-如何获取元素的创建日期信息

高速缓存尝试存储执行其操作所需的最少元数据,因此省略了一些便利以避免浪费。在这种情况下,您应该考虑通过包装您的值来添加该元数据。

缓存确实公开了运行时元数据,但这通常取决于其构造方式。可以使用Cache.policy()进行访问。例如,cache.policy().expireAfterWrite()提供了一种ageOf(key)方法来确定该条目自上次重置其到期时间戳以来已驻留多长时间。要计算条目到期之前的时间,可以从保单有效期内减去年龄(通过getExpiresAfter())。

,

Cache 接口提供了 getPolicy 方法来根据缓存的运行时特性检查和执行低级操作。例如,下面的代码段使用后写入策略返回缓存中条目的年龄。

private static void printAgeOfEntryUsingAfterWritePolicy(Cache cache,Object key) {
    Optional<FixedExpiration> expirationPolicy = cache.policy().expireAfterWrite();

    if (!expirationPolicy.isPresent()) {
        return;
    }

    Optional<Duration> ageOfEntry = expirationPolicy.get().ageOf(key);
    if (!ageOfEntry.isPresent()) {
        return;
    }

    Duration duration = ageOfEntry.get();

    System.out.println("Element with key " + key + " is in the cache from " + duration.getSeconds() + " seconds....");
}

参考link

本文链接:https://www.f2er.com/2374705.html

大家都在问