캐시를 mybatis--, L2 캐시

A, MyBatis로 캐시

● MyBatis로이 아주 쉽게 사용자 정의하고 캐시를 구성 할 수있는 강력한 쿼리 캐싱 기능이 포함되어 있습니다. 쿼리 효율성 저장 리본이 크게 향상 될 수있다.

기본이 캐시에 의해 정의 ● MyBatis로 시스템 : 캐시보조 캐시

  ○ 기본적으로 만 캐시에 돌았 다. (SQLSESSION 레벨 캐시, 또한 로컬 캐시라고도 함)

  ○ 수동으로 열고 구성에 보조 캐시 필요, 그가 기반 네임 스페이스 레벨 캐시.

  ○ 확장 성을 개선하기 위해, MyBatis로는 캐시 인터페이스 캐시를 정의합니다. 우리는 캐시를 구현하여 보조 캐시에 대한 인터페이스를 사용자 정의 할 수 있습니다

 

요약 : 캐시의 역할은 쿼리의 효율성을 개선하는 것입니다.

 

둘째, 캐시

● 레벨 캐시는 로컬 캐시라고합니다

  ○ 세션 데이터 동안 데이터베이스에 같은 쿼리를 로컬 캐시에 저장됩니다.

  같은 데이터를 얻을해야하는 경우, 캐시에서 직접 수행 ○ 후, 필요 데이터베이스를 쿼리로 이동합니다 없습니다.

 

요약 : 캐시, 즉, 하나의 SQLSESSION 효과, 기본적으로 활성화되어 연결이 범위 세그먼트를 닫 연결하세요!

 

셋째, 보조 캐시

글로벌 캐시로 알려진 ● 보조 캐시는 캐시 범위는 L2 캐시의 탄생, 그래서 너무 낮습니다.

두 레벨의 메모리에 대응 ● 기반 네임 레벨 캐시 네임 스페이스 (공간)

● 작동 메커니즘

  ○ 대화 쿼리 데이터는이 데이터는 현재 세션에서 캐시에 저장됩니다;

  현재 세션이 닫혀 있으면 ○,이 2 차 캐시에 저장됩니다;

  ○ 새로운 세션 쿼리 정보, 당신은 보조 캐시의 내용을 얻을 수 있습니다;

  다른 ○ mappe 격리 데이터에서 자신의 해당 캐시 (지도)에 배치됩니다;

 

의 보조 캐시 단계를 엽니 다

다음과 같이 핵심 프로필에 설정 탭을 추가하십시오 :

    < 설정 > 
        < 설정 이름 = "cacheEnable" = "true"를 /> 
    </ 설정 >

 

 는 SQL 매핑 파일에 한 줄을 추가합니다 :

< 캐시 />

 

또한 매개 변수를 사용자 정의 할 수 있습니다

< 캐시
   축출 = "FIFO" 
  flushInterval = "60000" 
  사이즈 = "512" 
  readOnly 인 = "참" />

이 고급 구성 객체 또는리스트를 결과 (512)의 참조를 저장할, 새로 60 초 FIFO 버퍼를 생성하고, 판독 전용 주기로 간주 리턴 오브젝트 따라서 서로 다른 스레드에서 수정 될 수있다 발신자 충돌합니다.

명확한 전략을 사용할 수 :

  • LRU  - 최소가 최근에 사용한 : 오랜 시간 동안 사용되지 않은 제거합니다 개체를.
  • 는 FIFO  - 선입 : 위해 객체에 의해 캐시에 그들을 제거합니다.
  • 소프트  - 소프트 참조 : 개체 참조 규칙 기반 가비지 컬렉터 부드러운 상태를 제거한다.
  • WEAK  - 약한 참조 : 더 적극적으로 가비지 컬렉터의 상태에 따라와 약한 참조의 규칙이 개체를 제거합니다.

기본 제거 정책은 LRU이다.

flushInterval (리프레시주기) 속성은 밀리 초 단위로 적절한 시간이어야 설정된 양의 정수 값으로 설정 될 수있다. 기본값은 새로 고침 간격 아니라고, 설정되지는 캐시는 경우에만 호출 문을 새로 고쳐집니다.

크기 (참조 번호) 속성은 메모리 리소스가 캐시 될 수 있는지 유의해야한다, 어떤 양의 정수로 설정하고 객체 사용 환경의 크기를 사용할 수있다. 기본값은 1024입니다.

readOnly 인 (읽기 전용) 속성을 true 또는 false로 설정할 수 있습니다. 읽기 전용 캐시 개체 인스턴스 캐시 된 모든 발신자에게 동일한를 반환합니다. 따라서, 이러한 개체는 수정할 수 없습니다. 이것은 상당한 성능 향상을 제공합니다. 그리고 읽기 - 쓰기 캐시는 캐시 된 객체 (직렬화)의 사본을 반환합니다. 일부 느린 속도로,하지만 더 보안 때문에 기본값은 false입니다.

 

참고 :

  1. 모든 데이터는 첫 번째 세션이 제출 또는 폐쇄되는 경우에만, 캐시에 배치 될 보조 캐시에 제출 될 것입니다!

   보조 캐시가 켜져있는 경우 2. MyBatis로는 보조 캐시에서 데이터를 추출하기 시작합니다. 데이터가 보조 캐시에서 발견되지 않는 경우, 캐시를 다시 검색 할 수 있습니다. 하나는 캐시 데이터를 찾을 수 없습니다, 당신은 데이터베이스를 쿼리로 이동하고 캐시에 쿼리 결과를 저장합니다.

 

추천

출처www.cnblogs.com/bear7/p/12515105.html