본문 바로가기

프로그래밍/JAVA

mybatis cashe사용 방법

1. sql-mapper-config.xml설정

<setting name="mapUnderscoreToCamelCase" value="true" />




2. 각 cashe를 사용할 sql.xml설정

<cache eviction="LRU" flushInterval="300000" size="20" readOnly="true"/>


eviction: 캐시 알고리즘 속성으로 기본은 LRU(사용빈도가 낮은것)이고 그 외에 3가지가 있음. FIFO(선입선출).
flushInterval: 캐시 유지 설정30분 뒤 캐시 비움.(단, 특정 시각을 정하지는 못함)
size: 디폴트 값은 1024이며, 메모리 여부를 확인 후 사용해야 할 듯.
readOnly: 캐시 데이터를 읽기만 가능하게 할지 설정. (읽기/쓰기 모두 가능한 경우에는 반환된 캐시 데이터에 대한 변경이 가능하며, 캐시 복사본을 반환한다고 함)

<참고>

  • LRU – Least Recently Used: 가장 오랜시간 사용하지 않는 객체를 제거
  • FIFO – First In First Out: 캐시에 들어온 순서대로 객체를 제거
  • SOFT – Soft Reference: 가비지 컬렉터의 상태와 강하지 않은 참조(Soft References )의 규칙에 기초하여 객체를 제거
  • WEAK – Weak Reference: 가비지 컬렉터의 상태와 약한 참조(Weak References)의 규칙에 기초하여 점진적으로 객체 제거



3. cashe를 사용할 select문 설정

useCache="true"





참조 : http://www.mybatis.org/mybatis-3/ko/configuration.html#settings

참조 : http://www.mybatis.org/mybatis-3/ko/sqlmap-xml.html#cache