0
일부 데이터 요소를지도에 저장할 수있는 간단한 캐시를 만들려고합니다. 이 데이터를 ~ 16 시간 정도 보관해야합니다. 이후에 오래된 항목이 만료되도록 할 수 있습니다. 나는 로딩 캐시를 인스턴스화하고있다 :Guava CacheBuilder가 예정보다 앞서 항목을 내 보냅니다.
cache = CacheBuilder.newBuilder()
.concurrencyLevel(4)
.weakKeys()
.expireAfterWrite(16, TimeUnit.HOURS)
.build(
new CacheLoader<K, V>() {
public V load(K key) throws Exception {
return getByKey(key);
}
});
매분마다 ~ 16 개의 항목을 추가하는 프로세스가있다. 12 분마다 캐시가 완전히 지워집니다. 나는 expireAfterWrite()에 설정된 시간보다 훨씬 앞서 캐시를 지우는 것으로 인해 당황 스럽다.
네, 분명히 'weakKeys()'일 것 같습니다. 당신이 그것을 사용했을 때 당신은 무엇을 염두에 두었습니까? –