2
한시간에 2 시간 동안 만 저장되는 캐시로 구현되는 내지도, 내가 넣은 링크에서 예제를 읽으려고했지만 현재지도를 어떻게 바꿀지 이해하지 못했습니다. 지도를 채우고 퇴거 명령을 사용해야한다는 것을 이해하지만 현재 코드를 어떻게 변경하는지 이해할 수 없습니다.은 내가 말하는거다하면은 다음과 같다
한시간에 2 시간 동안 만 저장되는 캐시로 구현되는 내지도, 내가 넣은 링크에서 예제를 읽으려고했지만 현재지도를 어떻게 바꿀지 이해하지 못했습니다. 지도를 채우고 퇴거 명령을 사용해야한다는 것을 이해하지만 현재 코드를 어떻게 변경하는지 이해할 수 없습니다.은 내가 말하는거다하면은 다음과 같다
캐시를 채우는 데 CacheLoader를 사용하고 있다고 가정하기 때문에 혼란스러워 할 지 모르지만 이전에는지도를 사용했다면 캐시를 채울 수 없으므로 혼란을 겪을 수 있습니다.
그래서, 주어진 예는 다음과 같습니다LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.removalListener(MY_LISTENER)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
});
직접지도에 삽입하고, 로더를 사용하지 않는, 그래서 적재 부 제거하고 :
Cache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.removalListener(MY_LISTENER)
.build();
이 에게
필요하지 않은 을 항목이 제거되었을 때 알림을 받으시겠습니까?
Cache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
고정 크기 캐시를 원하지 않고 정시에 제한하고 싶습니까?
Cache<Key, Graph> graphs = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
그리고 당신은 ... 당신은 2 시간 원했고, 버전이 문자열, 문자열, 그래서 말했다 그래서
Cache<String, String> graphs = CacheBuilder.newBuilder()
.expireAfterWrite(2, TimeUnit.HOURS)
.build();
당신은 무엇을하려고 했습니까? 정확히 당신은 이해하지 못했습니까? – redFIVE
제공된 링크에서 제공된 예제로 시작하는 것이 좋습니다. 필요없는 비트를 제거하고 만료일을 변경하면됩니다. –