Ehcache 2 급 캐 시, 캐 시 조회, 분산 캐 시 요약

2 급 캐 시 와 조회 캐 시 는 모두 하나 에 해당 합 니 다.
map

2 급 캐 시 캐 시
key
... 을 위 하여
id

value
실체 대상.여 간
load
(),
iterate
() 2 급 캐 시 에 사용,
list()
검색 캐 시 와 결합 해서 사용 해 야 합 니 다.
iterate
() 와
list
() 차 이 는 다음 과 같다.
iterate()
조회 캐 시 를 열 필요 가 없습니다.
먼저
sql
... 와 같다

select s.id from Student s

데이터베이스 에 가서
id
속성 목록 을 꺼 낸 다음 근거 로
id
목록 하나씩
load
() 캐 시가 캐 시 에서 가 져 오 면 캐 시가 없 으 면 데이터베이스 에서 가 져 옵 니 다.
select s.id,s.name,s.classid from     Student s where s.id=?,
꺼 낸 후 2 급 캐 시 에 저장 합 니 다.
Iterate
총회 발송
id
목록 의 문장.
List
() 검색 캐 시 를 열 어야 합 니 다. 먼저 보 냅 니 다.
sql
... 와 같다

select s.id,s.name,s.classid from Student s
…”
데이터베이스 에 가서 모든 관련 실 체 를 꺼 내 고 이 실 체 를 2 급 캐 시 에 저장 합 니 다.
sql
문장 및 관련 정보
key

id
목록 을 값 으로 하고 두 번 째 로 이 문 구 를 조회 할 때 근거 합 니 다.
sql
문장 및 관련 정보
key
있다 면
id
목록 하나 꺼 내기
load
() 다음
iterate
똑 같 아.
List
일반적으로 실체 목록 을 가 져 오 는 문 구 를 처음 보 내 는 것 만 있 습 니 다. 이후 의 것 입 니 다.
id
목록 은 캐 시 를 조회 해서 가 져 옵 니 다.
id
목록
sql
어구
 
전제: 동일 실행
hql
문장
select s from Student s
1. 
검색 캐 시 를 닫 고 2 급 캐 시 를 열 때
:
2 차 속성 조회 시
iterate
획득 만 보 냅 니 다.
id
리스트
sql

list
처음 과 같은 요청 실 체 를 보 내 드 리 도록 하 겠 습 니 다.
sql

2. 
조회 캐 시 오픈, 2 급 캐 시 오픈
2 차 속성 조회 시
iterate
획득 만 보 냅 니 다.
id
리스트
sql

list
발송 하지 않다
sql

이상 설명
iterate
2 급 캐 시 와 만 관련 이 있 습 니 다.
list
2 급 캐 시 와 조회 캐 시 모두 관련 이 있 습 니 다.
 
캐 시 조회
key
하나
QueryKey
(그 속성 은 아래 와 같다),
value
... 을 위 하여
id
집합

  
  
  
  
  1. public class QueryKey implements Serializable { 
  2.    private final String sqlQueryString;//sql  
  3.    private final Type[] types; 
  4.    private final Object[] values; 
  5.    private final Integer firstRow;//  
  6.    private final Integer maxRows;//  
  7.    private final Map namedParameters; 
  8.    private final EntityMode entityMode; 
  9.    private final Set filters; 
  10.    private final int hashCode; 
  11.    ...... 

... 와 같다
위의 속성 중 하나 가 다 르 면 캐 시 를 조회 하면 명중 하지 않 습 니 다.쓰다
list
() 처음 이 라면 캐 시 를 조회 하여 실체 목록 을 추출 한 다음 실체 목록 에서 추출 합 니 다.
id
목록
value
。캐 시 명중 조회 라면
QueryKey
꺼내다
id
목록,
그리고
id
목록 2 급 캐 시 로 이동 중
load
() 대상, 2 급 캐 시 에 대상 이 없 으 면
id
데이터베이스 에 가서 알 아 보 세 요. 2 급 캐 시 에 없습니다.
n
대상 은 데이터베이스 에 가서 조회 합 니 다.
n
다음:
select p from pojo p where id=?
그래서 전설 속 에
n+1
문제
캐 시 조회 중,
캐 시 캐 시 일반 속성 조회
, 즉 속성 에 대한 조회,
value
값 은 조회 할 속성 목록 입 니 다. 실체 에 대해 서 는...
value
값 은 실체의
id
목록
value
에서 직접 찾 을 수 있 으 면 2 급 캐 시 를 사용 하지 않 지만 실체 에 대한 조 회 는 2 급 캐 시 와 결합 하여 사용 해 야 합 니 다.다음은 이에 대해 설명 한다.
전제: 동일 실행
hql
문장
select s from Student s
혹시
select s.name from Student s
1. 
검색 캐 시 를 열 고 2 급 캐 시 를 닫 을 때
:
2 차 속성 조회 시 발송 되 지 않 습 니 다
sql
처음 실 체 를 조회 할 때 보 냅 니 다.
sql

2. 
조회 캐 시 오픈, 2 급 캐 시 오픈
두 번 째 검색 속성, 실 체 는 발송 하지 않 습 니 다.
sql
 
 
... 에 대하 여
Ehcache
분산 캐 시, 캐 시 를 조회 하면 업데이트 할 수 없 을 것 같 습 니 다:
시스템
Hibernate
표 데이터 수정
(save,update,delete
등등
)
이때
EhCache
캐 시 에 있 는 이 표 에 대한 모든 캐 시 를 자동 으로 삭제 합 니 다.
(
이렇게 하면 동기 화 에 도달 할 수 있다.
)
。그러나 두 개 이상 의 시스템 을 서로 다른 기계 에 배치 하고 그들 사이 에 배치 했다.
ehcache
분산 캐 시
A
시스템 수정 표 데이터
(save,update,delete)
후,
b
시스템 이 조회 캐 시 를 업데이트 합 니까?
답: 안 될 것 같 아 요.
ehcache
의 분산 캐 시 는 캐 시 조회 에 잘못 되 었 습 니 다.(프로젝트 에 설 정 했 습 니 다.
Ehcache
분포 식 캐 시, 2 급 캐 시 는 유효 하지만 캐 시 를 조회 하면 업데이트 할 수 없습니다. 시스템 에 있 는 것 이 아 닙 니 다.
Hibernate
다른 시스템 을 인식 할 수 없습니다.
hibernate
진행 여부
save,update,delete
조작
Ehcache
이에 대한 통합 도 이 뤄 지지 않 았 으 니 아 시 는 큰 소 에 게 말씀 해 주세요.)

좋은 웹페이지 즐겨찾기