💡ehcache의 주요 특징
Java의 대표적인 캐시 엔진 중의 하나로 경량의 빠른 캐시 엔진이다.
확장(scable) - 메모리 & 디스크 저장 지원, 멀티 CPU의 동시 접근에 튜닝
분산 지원 - 동기/비동기 복사, 피어(peer) 자동 발견
높은 품질 - Hibernate, Confluence, Spring 등에서 사용되고 있으며, Gaia 컴포넌트에서도 EHCache를 사용하여 캐시를 구현하였다.
💡설정
ehcache는 ehcache.xml파일을 설정 파일로 사용한다. 이 설정 파일은 캐시를 얼마만큼 보관할지, 얼마 동안 보관할지와 같은 캐시 정책을 정의하는 설정 파일이다.
- defaultCache 태그
반드시 존재해야 하는 태그로서, 코드에서 캐시를 직접 생성할 때 사용되는 캐시의 기본 설정값을 저장한다
<defaultCache
maxElementsInMemory="20000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU" statistics="true">
</defaultCache>
-cache 태그
하나의 캐시를 지정할 때 사용된다.
<cache name="sampleCache"
maxElementsInMemory="20000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU" statistics="true">
</cache>
name
캐시의 이름을 지정
- maxElementsInMemory
메모리에 저장될 수 있는 객체의 최대 개수
-eternal
이 값이 true이면 timeout 관련 설정은 무시되고, Element가 캐시에서 삭제되지 않는다.
- timeToIdleSeconds
Element가 지정한 시간 동안 사용(조회)되지 않으면 캐시에서 제거. 이 값이 0인 경우 조회 관련 만료 시간을 지정하지 않는다. 기본값은 0.
- timeToLiveSeconds
Element가 존재하는 시간. 이 시간이 지나면 캐시에서 제거. 이 시간이 0이면 만료 시간을 지정하지 않는다. 기본값은 0.
- overflowToDisk
메모리에 저장된 객체 개수가 maxElementsInMemory에서 지정한 값에 다다를 경우 디스크에 오버플로우 되는 객체는 저장할 지의 여부를 지정.
- diskPersistent
VM이 재가동할 때 디스크 저장소에 캐싱된 객체를 저장할지의 여부를 지정. 기본값은 false.
- diskExpiryThreadIntervalSeconds
Disk Expiry(디스크 만료) 쓰레드의 수행 시간 간격을 초 단위로 지정. 기본값은 120.
- memoryStoreEvictionPolicy
객체의 개수가 maxElementsInMemory에 도달했을 때,모메리에서 객체를 어떻게 제거할 지에 대한 정책을 지정. 기본값은 LRU. FIFO와 LFU도 지정할 수 있다.
'Spring' 카테고리의 다른 글
[프로젝트] Spring batch의 적용 (6) | 2023.06.06 |
---|---|
Spring batch (0) | 2023.06.05 |
[프로젝트] 2차 캐시의 적용/ 1차캐시와 2차캐시 차이 (0) | 2023.06.01 |
QueryDsl이란? 사용법+ 프젝 코드에 적용하기 (0) | 2023.05.31 |
[프로젝트] N+1 문제와 QueryDsl (0) | 2023.05.31 |