데이터 만료 유형 및 전략 개요
NCache 캐시 데이터가 만료되는 시간이나 간격을 지정할 수 있는 시간 기반 데이터 무효화를 지원합니다. 시간 기반 데이터 무효화는 데이터 변경 빈도를 확인할 수 있는 상황에 적용할 수 있습니다. 예를 들어 지역 정보는 자주 업데이트되지 않을 수 있으므로 시간 기반 만료를 사용하여 해당 데이터를 무효화할 수 있습니다.
또한 캐시의 오래된 데이터가 만료되면 관련 있고 업데이트된 데이터가 클라이언트에 제공됩니다. 예를 들어, 특정 제품에 사용할 수 있는 단위는 데이터베이스에서 변경될 수 있지만 캐시에서는 업데이트되지 않습니다. 따라서 특정 기간이 지난 후 캐시에서 해당 데이터가 만료되면 다음 클라이언트 요청 시 캐시에 새로운 데이터가 로드됩니다.
데이터 만료의 또 다른 용도는 세션을 유지 관리하는 것입니다. 세션이 일정 시간 동안 비활성화된 경우 유휴 상태이므로 캐시에서 제거할 수 있습니다.
캐시 항목에 만료 값이 추가됩니다. NCache 시간 기반 만료 항목에 대한 색인을 유지 관리합니다. 전용 스레드는 정리 간격이라는 구성 가능한 시간 간격 후에 정기적으로 만료된 항목에 대한 캐시 데이터를 확인합니다. 기본적으로 해당 값은 15초입니다. 즉, 캐시에서 항목을 제거하는 데 걸릴 수 있는 최대 시간은 만료 시간 + 정리 간격 + 정리 활동에 소요되는 시간입니다. 따라서 데이터 만료 시간에 따라 이 간격을 신중하게 선택해야 합니다.
절대 만료
항목이 무효화되어야 하는 정확한 날짜와 시간을 지정하여 절대 만료를 사용하여 캐시에 항목을 추가할 수 있습니다. 이 시간이 경과하면 항목이 캐시에서 제거됩니다. 여기, NCache 클라이언트와 캐시 서버가 서로 다른 시간대에 있는 경우를 용이하게 하기 위해 캐싱 서버에서 절대 만료에 대한 UTC 시간을 유지합니다. 이는 클라이언트가 지정한 만료 시간(모든 시간대)이 캐시 서버에서 UTC로 변환되고 항목이 클라이언트가 지정한 정확한 날짜와 시간에 만료됨을 의미합니다. 초부터 일, 월까지 만료 시간을 지정할 수 있습니다.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
하지만 다음 캐시 정리 간격에 만료되면 항목이 제거된다는 점에 유의하세요. 예를 들어 항목의 만료 시간을 10초로 지정하고 캐시 정리 간격을 15초로 구성한 경우 해당 항목은 15~25초 내에 제거됩니다.
슬라이딩 만료
이 만료에서는 캐시가 애플리케이션에서 사용되는 동안 데이터를 유지하고 특정 기간 동안 사용되지 않은 데이터를 제거하기를 원합니다. 사용자가 슬라이딩 만료를 사용하여 캐시 데이터에 액세스할 때마다 해당 캐시 수명은 특정 만료 간격만큼 연장됩니다. 예를 들어 슬라이딩 만료가 30초인 항목은 사용자가 최소 30초 동안 해당 데이터에 액세스하지 않으면 캐시에서 제거됩니다. . 그러나 액세스할 때마다 항목의 만료 간격이 30초로 재설정되어 캐시의 수명이 30초씩 연장됩니다.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
예를 들어, 세션이 활성 상태인 동안 세션 데이터는 캐시에 저장될 수 있습니다. 이러한 유형의 데이터에 대해 슬라이딩 만료(예: 15분)를 지정할 수 있습니다. 따라서 지정된 시간 간격 내에 활동이 발생하면 세션 만료 간격이 캐시에서 15분으로 재설정됩니다.
절대 만료와 유사하게 슬라이딩 만료가 있는 캐시 항목은 캐시 정리 간격에 따라 제거됩니다.
경고
캐시 항목에 만료가 제공되지 않으면 해당 항목은 명시적으로 제거될 때까지 캐시에 상주합니다. 이는 캐시 스토리지를 압도할 수 있습니다.
또한 참고해주세요 퇴거 정책 의 또 다른 기능입니다 NCache 캐시 스토리지 사용을 제어합니다.
기본 만료
NCache 또한 보다 유연하게 데이터 무효화 전략을 설정하는 데 도움이 되는 기본 만료를 지원합니다. 기본 만료는 다음을 통해 구성됩니다. NCache 관리센터 또는 config.ncconf, 따라서 API를 통해 전달되는 만료 값을 변경하려는 경우 코드를 변경할 필요가 없습니다. 또한 동일한 응용 프로그램에 여러 만료 값이 필요한 경우 기본 만료를 사용할 수 있습니다.
NCache 다음과 같은 기본 만료를 제공합니다.
- 기본 절대
- 기본 슬라이딩
- 기본 절대 긴
- 더 긴 기본 슬라이딩
모든 기본 만료의 최소값은 5초입니다.
Default Absolute가 5초로 구성되고 Default Sliding Longer 만료가 10초로 구성되었다고 가정해 보겠습니다. 의 객체 프로덕트 클래스는 Default Absolute를 사용하여 캐시에 추가되고 Default Sliding Longer 만료를 사용하여 세션이 추가됩니다. 객체가 추가되면 둘 다의 만료 값을 15초로 변경하려고 합니다. 새 만료 값을 사용하여 개체를 다시 삽입하는 대신 간단히 다음에서 구성을 변경할 수 있습니다. NCache 관리센터 또는 config.ncconf, 코드 변경 없이.
만료 정책을 구성하는 여러 시나리오가 있습니다. NCache Management Center와 API는 중복되며 다음 동작을 트리거합니다. 기본이 아닌 만료는 절대 및 슬라이딩 만료를 나타냅니다.
기본 만료 | API 호출 만료 | 행동 |
---|---|---|
구성된 | 기본 만료 | 기본 만료 |
구성된 | 기본값이 아닌 만료 | 기본값이 아닌 만료 |
구성된 | 없음 | 기본 만료 |
구성하지 | 기본 만료 | 유효 기간 없음 |
구성하지 | 기본값이 아닌 만료 | 기본값이 아닌 만료 |
구성하지 | 없음 | 유효 기간 없음 |
중대한
럭셔리 CacheItem
에서 Absolute 및 Sliding Expiration의 기본값은 NoAbsoluteExpiration 및 NoSlidingExpiration입니다. 따라서 기본 만료가 구성되었지만 API에 만료가 구성되지 않은 경우 CacheItem
, 기본 만료 값이 구성된 기본 만료를 덮어쓰므로 만료가 발생하지 않습니다.
클러스터 환경에서의 만료
여러 대의 캐싱 서버가 관련된 클러스터링된 캐시 환경에서 만료는 다양한 방식으로 다르게 처리됩니다. NCache 토폴로지.
- . 미러 토폴로지에서는 활성 노드가 만료를 수행하고 이를 수동 노드에서 동기화합니다.
- . 복제 캐시가 만료되면 코디네이터 노드가 만료를 수행하고 작업은 클러스터된 다른 노드와 동기화됩니다.
- . 파티션 된 토폴로지에서는 데이터가 별도의 노드에 분산되므로 각 노드는 자체 항목 만료를 담당합니다.
- 럭셔리 파티션-복제본 토폴로지에서 만료는 활성 노드에서 수행되고 해당 복제본으로 전파됩니다.
- 클라이언트 캐시 클러스터된 캐시에서 활성화된 동일한 만료를 활용합니다. 그러나 슬라이딩 만료는 캐시와 동기화되면 절대 만료로 추가됩니다. 값이 클러스터된 캐시에서는 미끄러지지만 클라이언트 캐시에서는 미끄러지지 않는 경우 불일치가 발생하기 때문입니다.