최대 절전 모드가 두 번째 수준 캐시에 도달하고 캐시가 무효화되는시기를 이해하는 데 어려움이 있습니다.
이것이 내가 현재 이해하고있는 것입니다.
- 두 번째 레벨 캐시는 세션 사이에 엔티티를 저장하고 범위는 SessionFactory입니다.
- 캐시 할 엔티티를 지정해야합니다. 엔티티는 기본적으로 캐시되지 않습니다.
- 쿼리 캐시는 쿼리 결과를 캐시에 저장합니다.
내가 이해하지 못하는 것은
- 최대 절전 모드는 언제이 캐시에 도달합니까?
- 두 번째 수준 캐시를 설정했지만 쿼리 캐시는 설정하지 않았다고 가정 해 보겠습니다. 내 고객을 캐시하고 싶습니다. 50000 명이 있습니다. 어떤 방법으로 캐시에서 고객을 검색 할 수 있습니까?
- 캐시에서 ID로 가져올 수 있다고 가정합니다. 쉽지만 캐싱 할 가치가 없습니다. 하지만 모든 고객과 함께 계산을하고 싶다면 어떨까요? 고객 목록을 표시하고 싶은데 어떻게 액세스 할 수 있습니까?
- 쿼리 캐싱이 비활성화 된 경우 모든 고객을 어떻게 확보 할 수 있습니까?
- 누군가 고객 중 하나를 업데이트하면 어떻게됩니까?
- 해당 고객이 캐시에서 무효화됩니까, 아니면 모든 고객이 무효화됩니까?
아니면 캐싱이 완전히 잘못되었다고 생각합니까? 이 경우 두 번째 수준 캐시를 더 적절하게 사용하는 것은 무엇입니까? 최대 절전 모드 문서는 캐시가 실제로 어떻게 작동하는지 전혀 명확하지 않습니다. 설정 방법에 대한 지침 만 있습니다.
업데이트 : 그래서 두 번째 수준 캐시 (쿼리 캐시 없음)가 ID로 데이터를로드하는 데 유용 할 것임을 이해하게되었습니다. 예를 들어 웹 응용 프로그램의 모든 요청에서 권한을 확인하려는 사용자 개체가 있습니다. 사용자를 두 번째 수준 캐시에 캐시하여 데이터베이스 액세스를 줄이는 것이 좋은 경우입니까? 세션에 사용자 ID를 저장하거나 권한을 확인해야 할 때마다 ID로 사용자를로드하고 권한을 확인합니다.