문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
java:caffeine [2024/02/08 08:53] kwon37xi |
java:caffeine [2024/02/08 09:08] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Caffeine - java cache ====== | ====== Caffeine - java cache ====== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| - | ===== WeakKeys | + | |
| - | * '' | + | ===== Eviction |
| + | * [[https:// | ||
| + | ==== weakKeys() / weakValues() | ||
| + | * '' | ||
| + | * 이 경우 key 와 value 모두가 GC 대상이다. | ||
| * 그러나 **Key 를 비교할 때 '' | * 그러나 **Key 를 비교할 때 '' | ||
| * 이는 Key 역할을 하는 객체가 값이 같아도 reference 가 다르면 다른것으로 인식하게 되어 cache hit 가 안됨을 뜻한다. | * 이는 Key 역할을 하는 객체가 값이 같아도 reference 가 다르면 다른것으로 인식하게 되어 cache hit 가 안됨을 뜻한다. | ||
| + | * '' | ||
| + | |||
| + | <code java> | ||
| + | LoadingCache< | ||
| + | .weakKeys() | ||
| + | .weakValues() | ||
| + | .build(key -> createExpensiveGraph(key)); | ||
| + | </ | ||
| <note warning> | <note warning> | ||
| 줄 11: | 줄 24: | ||
| </ | </ | ||
| + | ==== softValues() ==== | ||
| + | <code java> | ||
| + | LoadingCache< | ||
| + | .softValues() | ||
| + | .build(key -> createExpensiveGraph(key)); | ||
| + | </ | ||
| + | |||
| + | * 캐시의 value '' | ||
| + | * 값의 비교도 identity 비교('' | ||
| + | * 단, 문서에서는 '' | ||
| + | * '' | ||