EHCache 설정하기
설정 순서는 아래와 같다.
- Maven Dependency 설정
- Ehcache.xml 작성 (ehcache 설정파일)
- CacheManager 설정 (xml)
Maven Dependency 설정
1 | <!-- EHCache 모듈 (블로그 작성 시점에서 2.10.6이 최신이다.) --> |
ehcache.xml 작성
1 |
|
- defaultCache는 반드시 구현해야 할 캐시 (직접 생성하는 캐시에 대한 기본 설정)
- cache는 하나의 캐시를 사용할 때마다 구현
- name 속성은 캐시의 이름을 지정하며, 코드에서는 이 캐시의 이름을 사용하여 사용할 Cache 인스턴스를 구한다.
속성 | 설명 | Default |
---|---|---|
name | 코드에서 사용할 캐시 name | 필수 |
maxEntriesLocalHeap | 메모리에 생성 될 최대 캐시 갯수 | 0 |
maxEntriesLocalDisk | 디스크에 생성 될 최대 캐시 갯수 | 0 |
eternal | 영속성 캐시 설정 (지워지는 캐시인지?) external = “true”이면, timeToIdleSecond, timeToLiveSeconds 설정이 무시됨 |
false |
timeToIdleSecond | 해당 초동안 캐시가 호출 되지 않으면 삭제 | 0 |
timeToLiveSeconds | 해당 초가 지나면 캐시가 삭제 | 0 |
overflowToDisk | 오버플로우 된 항목에 대해 disk에 저장할 지 여부 | false |
diskPersistent | 캐시를 disk에 저장하여, 서버 로드 시 캐시를 말아 둘지 설정 | false |
diskExpiryThreadIntervalSeconds | Disk Expiry 스레드의 작업 수행 간격 설정 | 0 |
memoryStoreEvictionPolicy | 캐시의 객체 수가 maxEntriesLocalHeap에 도달하면, 객체를 추가하고 제거하는 정책 설정 LRU : 가장 오랫동안 호출 되지 않은 캐시를 삭제 LFU : 호출 빈도가 가장 적은 캐시를 삭제 FIFO : First In First Out, 캐시가 생성된 순서대로 가장 오래된 캐시를 삭제 |
LRU |
CacheManager Bean 설정
1 | z<!-- Annotation 기반 캐시 사용 (@Cacheable, @CacheEvict..) --> |